1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Cランク・スキルチェック過去問題セット(言語選択)
  4. 問題一覧 Java編
  5. 「みかんの仕分け」を解くために:part5 Java編

Cランク・スキルチェック過去問題セットのサムネイル
「みかんの仕分け」を解くために:part5 Java編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!


part 4 までで与えられた箱にみかんを仕分けることができるようになりました。
元の問題「みかんの仕分け」では、仕分ける箱は入力では与えられません。
では、箱に書かれる数字をどこからどこまで調べたらよいのでしょうか?
N の倍数が書かれた箱を永遠に調べていては実行時間制限に間に合いません。
そのため、調べる箱に書かれた数の上限を決める必要があります。
part 5 では、どのくらい大きい数字まで調べたらよいかのヒントを問題と解説を通してお示しします。


1 個のみかんが与えられます。
今回の問題では仕分ける箱は入力で与えられませんが、箱に書かれた数字が 1 以上 1,500 以下の箱しか存在しないとします(書かれた数字が 1,501 以上の箱は存在しません)。
書かれた数字が 1, 2, .. , 1,500 の箱を昇順に調べ、箱に書かれた数字が N の倍数である場合、「箱に書かれた数字」と「みかんの重さと箱に書かれた数字の差の絶対値」を出力してください。


箱に書かれた数字が大きくなるにつれて、みかんの重さと箱に書かれた数字の差の絶対値がどのように変化しているか観察してみてください。(出力する必要はありません)

入力される値

入力は以下のフォーマットで与えられます。

N M
w

・ 1 行目に仕分ける重さの区切りを表す整数、みかんの個数を表す整数 N, M がこの順で半角スペース区切りで与えられます。
・ 2 行目にはみかんの重さを表す整数 w が与えられます。
・ 入力は合計で 2 行からなり、入力値最終行の末尾に改行が 1 つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

以下の形式で出力してください。

y_1 z_1
y_2 z_2
...
y_Q z_Q

・ 1 以上 1,500 以下の整数のうち N の倍数の個数を Q とすると、期待する出力は Q 行からなります。
・ i 行目 (1 ≦ i ≦ Q) にはそれぞれ、 1 以上 1,500 以下の N の倍数のうち小さい方から i 番目の数値 y_i と、その数値と w との差の絶対値 z_i をこの順に空白区切りで出力してください。
・ 出力最終行の末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ 1 ≦ N ≦ 100
・ M = 1
・ 1 ≦ w ≦ 1,000

入力例1

87 1
335

出力例1

87 248
174 161
261 74
348 13
435 100
522 187
609 274
696 361
783 448
870 535
957 622
1044 709
1131 796
1218 883
1305 970
1392 1057
1479 1144

入力例2

80 1
400

出力例2

80 320
160 240
240 160
320 80
400 0
480 80
560 160
640 240
720 320
800 400
880 480
960 560
1040 640
1120 720
1200 800
1280 880
1360 960
1440 1040

入力例3

86 1
1000

出力例3

86 914
172 828
258 742
344 656
430 570
516 484
602 398
688 312
774 226
860 140
946 54
1032 32
1118 118
1204 204
1290 290
1376 376
1462 462

問題一覧へ戻る

ページの先頭へ戻る