Submission #1060559

#TimeUsernameProblemLanguageResultExecution timeMemory
1060559Halym2007Aliens (IOI07_aliens)C++17
40 / 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; int m = 1; 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 and m <= 100); 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 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 = b, r1 = b; while (l1 > 1) { if (!ask(a, l1 - 1)) { break; } l1--; } while (r1 < n) { if (!ask(a, r1 + 1)) break; r1++; } // return 0; int x = l, y = r1; // cout << "bizow -- > " << x << " " << y << " " << l1 << " " << while (x > 2*m) { if (!ask(x - 2*m, y)) break; x -= 2*m; } if (x > m and y + m <= n) { if (ask(x - m, y + m)) { x -= m; y += m; } } while (y + 2*m <= n) { if (!ask (x, y + 2*m)) { break; } y += 2*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...