Submission #1060480

#TimeUsernameProblemLanguageResultExecution timeMemory
1060480Halym2007Aliens (IOI07_aliens)C++17
0 / 100
2 ms600 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define sz size() #define ff first #define ss second #define pb push_back #define pii pair <int, int> const int N = 2e5 + 5; int n, sorag = 0; bool ask (int jj, int kk) { if (jj > n or kk > n) return 0; if (jj < 1 or kk < 1) return 0; sorag++; assert (sorag <= 300); cout << "examine " << jj << " " << kk << endl; string s; cin >> s; if (s[0] == 't') return 1; return 0; } int main () { // freopen ("input.txt", "r", stdin); // ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); int a, b; cin >> n >> a >> b; int m = 1; int l = a, r = a; while (l > 1) { if (!ask(l - 1, b)) { break; } l--; m++; } while (r < n) { if (!ask(r + 1, b)) break; r++; m++; } int l1 = a, r1 = a; while (l1 > 1) { if (!ask(a, l1 - 1)) { break; } l1--; } while (r1 < n) { if (!ask(a, r1 + 1)) break; r1++; } int x = l1, y = r1; while (x > m) { if (!ask(x - m, y)) break; x -= m; } if (x > m and y + m <= n) { if (ask(x - m, y + m)) { x -= m; y += m; } } while (y + m <= n) { if (!ask (x, y + m)) { break; } y += m; } int jog1 = (x + 2 * m) + m / 2, jog2 = (y - 2 * m) - m / 2; cout << "solution " << jog1 << " " << jog2; }
#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...
#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...