UVa問題日本語意訳100~110
UVaオンラインジャッジの個人による非公式意訳です。
英語が出来ない人のために翻訳しております。
公式から抗議があった場合このページは即座に消す予定です。
抗議はこちらへお願いします。
sinapusu2002@yahoo.co.jp
UVa 100 - The 3n + 1 problem
入力が
4 2
なら
n=2で始めた時数列は 2,1
n=3で始めた時数列は 3,10,5,16,8,4,2,1
n=4で始めた時数列は 4,2,1
で3から始めた場合の長さ8が答えとなるので
答えは入力で与えられた範囲4と2それと答えである8を合わせて
4 2 8を一行に出力せよ。
入力の終わりはEOFで与えられる。
入出力の詳細は原文を参照すること。
UVa 101 - The Blocks Problem
0からn-1までの地点にブロック一つずつが入っている。
初期状態では0の地点に0のラベルが貼られたブロックが、1の地点には1のラベルが張られたブロックが、、、n-1の地点にはn-1のラベルの張られたブロックが入っている。
アームロボットがこれらのブロックを移動した。
ロボットに与えられた命令が与えられるので移動後のブロックの状態を出力せよという問題。
命令は以下の4種類である
ブロックは地点の上で垂直に積み上げていくものとする。
move a onto b
aのブロックがある山でaが出てくるまでブロックを取り除く。
取り除いたブロックはブロックのラベル番号と同じ地点に移動する。
bのブロックがある山でも同様の操作を行い。
その後aの上にbをのせよ。
move a over b
現在bのブロックがある山の上にaを追加せよ。
aの地点があった場所はaが出てくるまでブロックを取り除き、取り除いたブロックはブロックのラベル番号と同じ地点に置くこと。
pile a over b
aとaの上に乗ってるブロック全てをbのラベルの貼られたブロックのある山の上にのっけよ。
pile a onto b
bのブロックのある山でまずbがでてくるまでブロックを上から順に取り除き、取り除いたブロックはブロックのラベル番号と同じ場所に置くこと。
後はaとaの上に乗っているブロックすべてをbの上に乗っけよ。
入力は最初のnは地点の数。
その後命令が与えられる。
命令の終わりはquitで与えられる。
出力は
地点番号: その地点に乗ってるブロックを下から表示。
、、、
として表示する。
詳しくは原文のサンプルデータを参照すること。
UVa 102 - Ecological Bin Packing
一つのビンを手に取り別の箱に入れる作業を1回の操作と定義する。
どの箱も同じ色の瓶しか入ってないようにビンの入れ替え作業をした時最小の操作回数は何回になるか答えよ。
答えは一つ目、2つ目、3つ目の箱を何色のビンを集めることに決めたかのBGCの組み合わせと、最小の操作回数を一行に出力せよ。
何通りか答えがあるならBGCがアルファベット順になる物が優先される。
UVa103 - Stacking Boxes
入力はボックスの数nと次元数dが最初の行に与えられる。
その後ボックスの各辺の長さがn行与えられる。
ボックスはd次元直方体として与えられる。
例えば次元数が3次元ならボックスの縦横高さの3つの長さが与えられる。
ボックス回転してもよいがどのボックスも必ず回転後、全ての辺がどれかの次元の軸と平行にならなくてはいけない。
例えば3次元ならどのへんもX軸、Y軸、Z軸のどれかと平行になる回転しか許されない。
入力例
4 2
5 3
2 4
6 6
1 9
なら
2 4の長方形を、5 3の長方形の中に入れ5 3 の長方形を6 6の中に入れればよいので答えは
3
2 1 3
となる。
これは2番目の箱を1番目の箱に入れ、1番目の箱を3番目の箱に入れて箱は3重入れ子になったということを表している。
答え候補が複数ある場合はどれを出力しても良い。
入れる場合箱の辺は必ず大きくなくてはいけない。
例えば入力データが以下のようなものなら
2 2
1 3
2 3
だと3と3が同じ長さであるために(2 3)の箱に入れることが出来ない点に注意が必要。
箱の数は最大30、次元は10次元までとなる。
UVa 104 - Arbitrage
通貨は交換表の上から1番、2番、、、n番と設定されている。
答えは通貨の交換手順で表示する。
2 3 4 3 4 2
なら通貨2から初めて通貨3に交換し、それを4に交換し3に戻しまた4に交換し最終的に2に戻ってきたことをあらわす。
UVa 105 - The Skyline Problem
1 5 11
というデータがあればx範囲1~11までの範囲に高さ5の長方形が置かれているとなります。
1 5 11
3 7 10
なら
1 5 3 7 10 5 11 0
と出力する。
これは1の地点で高さが5になり、3の地点で高さが7と変化し、10の地点で高さが5になり、11の地点で高さが0になったとします。
長方形は重なっても良いとします。
106 - Fermat vs. Pythagoras
例えば
10
入力されたら
1 4と答える。
これは
z<=10となる原始ピタゴラス数は(3,4,5)の一種類だけなので1、原始でないピタゴラス数も考えると(6,8,10)。
z<=10以下のピタゴラス数の組ででて来る数は3,4,5,6,8,10
でてこない数は1,2,7,9の4種類なので答えが1 4となるわけである。
107 - The Cat in the Hat
108 - Maximum Sum
109 SCUD Busters
インプットデータは国の施設の数nが与えられ、その後その国施設の座標n個が整数で与えられてこれが複数回続く。
-1が施設データの入力の終わりを示す。
続いて降り注ぐミサイルの着弾座標が与えられる。
ミサイルが国内に降り注いだ国はどこに着弾しても停電してしまう。
外壁に降り注いだ場合も停電すると仮定してよい。
ミサイルの入力終了はEOFとなる。
全ミサイル着弾後。
停電した国の面積の総計を小数点以下2桁までで答えよ。
110 - Meta-Loopless Sorts
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=46
m個の数字の変数を読み込み、小さい順にソートした結果を返すphytonプログラムを自動生成したい。
ただし生成されるコードで使っていい命令は
if,else if,else,readln,writelnそれと < (比較演算子)だけである。
使っていい変数はa,b,c,d,e,f,g,hだけとなる。
最初にデータセットの数nが与えられる。
そのあとにn個データセットが続く。
データセットの中身は変数の数1<=m<=8一つだけであり一行ずつ与えられる。
mにあったohytonコードを生成するプログラムを書くこと。
答えの間には一行間隔を空けること。
m=3ならa,b,cに数字を順番に読み込み、
m=4ならa,b,c,dに数字を順番に読み込みソートできる処理を書くこと。
出力しなくてはいけないのはphytonコードとなる。
例えばインプットが
2
2
3
なら
答えの例
program sort(input,output);
var
a,b : integer;
begin
readln(a,b);
if a < b then
writeln(a,b)
else
writeln(b,a)
end.
program sort(input,output);
var
a,b,c : integer;
begin
readln(a,b,c);
if a < b then
if b < c then
writeln(a,b,c)
else if a < c then
writeln(a,c,b)
else
writeln(c,a,b)
else
if a < c then
writeln(b,a,c)
else if b < c then
writeln(b,c,a)
else
writeln(c,b,a)
end.
となる、答えはコードそのものである。
最終更新:2013年03月18日 17:48