UVa問題日本語意訳100~110 ---- *UVa100 - The 3n + 1 problem http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=36 数字nに対して以下のような操作を繰りかえすと最終的に1になる。 nが2の倍数ならn=n/2 それ以外ならn=3n+1 である。 入力として範囲i,jが与えられる. i<=n<=jの範囲のどれか一つでnを始めた時、上記操作を繰り返して1になるまでの数列の長さはそれぞれ違うが、この中でもっとも長くなる場合の長さを答えよ。 j<=n<=iである場合もあるので注意せよ。 入力が 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で与えられる。 入出力の詳細は原文を参照すること。 ---- *UVa101 101 - The Blocks Problem http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=37 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は地点の数。 その後命令が与えられる。 出力は 地点番号: その地点に乗ってるブロックを下から表示。 、、、 として表示する。 詳しくは原文のサンプルデータを参照すること。 ---- *UVa105 105 - The Skyline Problem http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=41 直線上にy>0の範囲で長方形が置かれている。 一番xの値が小さい方から見ていき高さに変化があった場所を順番に出力せよ。 解説するよりも図をみた方が問題です。 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になったとします。 長方形は重なっても良いとします。