Submission #1060507

#TimeUsernameProblemLanguageResultExecution timeMemory
1060507Halym2007Aliens (IOI07_aliens)C++17
20 / 100
3 ms440 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 <ll, ll> const int N = 2e5 + 5; ll n, sorag = 0; ll m = 1; bool ask (ll jj, ll 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; cout << flush; 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); ll a, b; cin >> n >> a >> b; ll 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++; } ll 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; ll x = l, 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 + 2 * m <= n) { if (!ask (x, y + 2LL * m)) { break; } y += 2*m; } ll jog1 = (x + 2 * m) + (m / 2LL), jog2 = (y - (2LL * 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...