結果
問題 |
No.1830 Balanced Majority
|
ユーザー |
👑 |
提出日時 | 2022-01-09 10:52:44 |
言語 | C (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 691 bytes |
コンパイル時間 | 121 ms |
コンパイル使用メモリ | 28,416 KB |
実行使用メモリ | 40,564 KB |
最終ジャッジ日時 | 2024-11-14 10:17:16 |
合計ジャッジ時間 | 82,123 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | TLE * 1 |
other | TLE * 25 |
ソースコード
#include <stdio.h> int main() { int N; scanf("%d", &N); int x, y; printf("? 1\n"); fflush(stdout); scanf("%d\n", &x); printf("? %d\n", N - 1); fflush(stdout); scanf("%d\n", &y); if ((x == 1 && y == N / 2) || (x == 0 && y == N / 2 - 1)) { printf("! 2 %d\n", N - 1); fflush(stdout); return 0; } return -1; int l = 1, r = N - 1, m, z; while (l < r) { m = (l + r) / 2; printf("? %d\n", m); fflush(stdout); scanf("%d", &z); if (z * 2 == m) { l = m; break; } else if ((x == 1 && z * 2 > m) || (x == 0 && z * 2 < m)) l = m + 1; else r = m - 1; } if (l >= N / 2) printf("! 1 %d\n", l); else printf("! %d %d\n", l + 1, N); fflush(stdout); return 0; }