結果
問題 |
No.1830 Balanced Majority
|
ユーザー |
👑 |
提出日時 | 2022-01-09 10:48:52 |
言語 | C (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 661 bytes |
コンパイル時間 | 149 ms |
コンパイル使用メモリ | 29,568 KB |
実行使用メモリ | 40,980 KB |
最終ジャッジ日時 | 2024-11-14 10:14:29 |
合計ジャッジ時間 | 82,505 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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; } int l = 1, r = N - 1, m, z; while (l < r) { m = (l + r) / 2; printf("? %d\n", m); 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; }