結果
問題 | No.8 N言っちゃダメゲーム |
ユーザー | yuma25689 |
提出日時 | 2015-11-04 16:57:41 |
言語 | PHP (8.3.4) |
結果 |
AC
|
実行時間 | 43 ms / 5,000 ms |
コード長 | 1,928 bytes |
コンパイル時間 | 420 ms |
コンパイル使用メモリ | 32,020 KB |
実行使用メモリ | 32,528 KB |
最終ジャッジ日時 | 2024-09-13 12:24:54 |
合計ジャッジ時間 | 1,204 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 40 ms
32,404 KB |
testcase_01 | AC | 42 ms
32,088 KB |
testcase_02 | AC | 41 ms
32,272 KB |
testcase_03 | AC | 41 ms
32,276 KB |
testcase_04 | AC | 40 ms
32,400 KB |
testcase_05 | AC | 41 ms
32,144 KB |
testcase_06 | AC | 41 ms
32,528 KB |
testcase_07 | AC | 42 ms
32,276 KB |
testcase_08 | AC | 42 ms
32,400 KB |
testcase_09 | AC | 41 ms
32,400 KB |
testcase_10 | AC | 43 ms
32,276 KB |
コンパイルメッセージ
No syntax errors detected in Main.php
ソースコード
<?php // P // N1 K1 // N2 K2 // … // NP KP // 1行目に、ゲームの回数を表す整数P (1≤P≤100)が与えられる。 // 続くP行に各ゲームの条件を表す整数 N (2≤N≤120000) と K (2≤K≤120000)が与えられる。 // 出力 // 全部でP行、各ゲームの勝敗を Win または Lose で出力してください。 // 行の最後に改行してください。 // 1 <= count <= 100 $game_count = trim(fgets(STDIN)); // // const MAX=10000; // $CombinationOfThisWeightExist = array_fill(0,MAX,False); // $CombinationOfThisWeightExist[0] = True; while($game_count--) { $game_stat=explode(' ',trim(fgets(STDIN))); $current=0; $you_are_winner=True; // (2<=rangeMax<=120000) $rangeMax=intval($game_stat[0]); // (2<=addMax<=120000) $addMax=intval($game_stat[1]); //print("${rangeMax},${addMax}".PHP_EOL); // 自分が先行 // $rangeMax-1をゲットした方が勝利と思われる // そうすると、$rangeMax-1-$addMax-1をゲットで勝ちとなる気がする // さらにそうすると、$rangeMax-1-$addMax-1-$addMax-1をゲットで勝ちとなる気がする // $rangeMax-1-($addMax+1)*nをゲットできるかどうかの勝負? // 例えば、21,3だと、20-4n=>4,8,12,16,20のいずれかをゲットで勝利(出番が終わった後の話) // 例えば、12,5だと、11-6n=>5,11のいずれかをゲットで勝利(出番が終わった後の話) // とりあえず、このプログラムでは勝てる数字の0より大きい中で一番小さいものをプレイヤーがゲットできるかを調べる $target=$rangeMax-1; //$n=0; //while( 0 < $target-($addMax+1)*($n+1) ) $n++; $target %= ($addMax+1);//-= ($addMax+1)*($n); //print("${target}=${rangeMax}-1-(${addMax}+1)*${n}".PHP_EOL); if( $target!=0 && $target <= $current + $addMax ) // この時のターンの人が勝利 print('Win'.PHP_EOL); else print('Lose'.PHP_EOL); }