結果
| 問題 |
No.257 N言っちゃダメゲーム (3)
|
| コンテスト | |
| ユーザー |
ty70
|
| 提出日時 | 2015-12-14 14:10:51 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 853 bytes |
| コンパイル時間 | 760 ms |
| コンパイル使用メモリ | 56,108 KB |
| 実行使用メモリ | 25,604 KB |
| 平均クエリ数 | 6.53 |
| 最終ジャッジ日時 | 2024-07-16 08:05:25 |
| 合計ジャッジ時間 | 4,238 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 WA * 27 |
ソースコード
#include <iostream>
#define rep(i,n) for(int i=0;i<(n);i++)
#define ALL(A) A.begin(), A.end()
using namespace std;
typedef long long ll;
bool is_win(int n, int k){
return (n - 1) % (k + 1) != 0; // 先攻が勝つ true 後攻が勝つ false
}
int main()
{
ios_base::sync_with_stdio(0);
int n, k; cin >> n >> k;
int a, b;
int remain = n;
bool battle_first = true; // 先攻
if (!is_win(n,k)){
cout << 0 << endl;
cin >> b;
remain -= b;
battle_first = false;// 後攻
} // end if
while (1){
int in = 0;
for (int i = static_cast<int>(min(remain,k)); i >= 1; --i){
if ((battle_first && is_win(remain, i))
|| (!battle_first && !is_win(remain, i))){
in = i;
break;
} // end if
} // end for
a = in + (n - remain);
cout << a << endl;
cin >> b;
if (b >= n) break;
remain = n - b;
} // end while
return 0;
}
ty70