Submission #1137669

#TimeUsernameProblemLanguageResultExecution timeMemory
1137669lightentheshadowColors (BOI20_colors)C++20
0 / 100
0 ms420 KiB
#include <bits/stdc++.h> using namespace std; int main() { long long n; cin >> n; if (n == 1 || n > 1000) { cout << "= " << n; return 0; } int x = sqrt(n), y = 1, cnt = 0; for (int i = x / 2 + 1; i <= x; i++) { int num = i; while (num + x <= n) num += x; if (n - num >= i - 1 && (n - num) - (i - 1) <= 1) { y = i; break; } } int save[55]; while (y <= n) { save[++cnt] = y; y += x; } int l = 1, r = cnt, curr = 0, border = n, prev = save[cnt]; cout << "? " << save[cnt] << endl; int ngaos; cin >> ngaos; while (l < r) { if (!curr) cout << "? " << save[l] << endl; else cout << "? " << save[r] << endl; int res; cin >> res; if (res == 1) { if (!curr) { border = abs(prev - save[l]); prev = save[l]; r--; } else { border = abs(prev - save[r]); prev = save[r]; l++; } } else { int P = save[l], Q = save[r], turn = 1 - curr; while (Q - P + 1 < border) { if (turn) cout << "? " << ++Q << endl; else cout << "? " << --P << endl; turn = 1 - turn; cin >> res; if (res == 1) { cout << "= " << Q - P; return 0; } } cout << "= " << border; return 0; } curr = 1 - curr; } int turn = 0, bim = save[l]; cout << "No\n"; for (int i = border - 1; i >= 1; i--) { if (!turn) bim += i; else bim -= i; turn = 1 - turn; cout << "? " << bim << endl; int res; cin >> res; if (!res) { cout << "= " << i + 1; return 0; } } cout << "= " << 1; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...