Submission #625376

#TimeUsernameProblemLanguageResultExecution timeMemory
625376StavabAliens (IOI07_aliens)C++14
0 / 100
2 ms216 KiB
#include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, x0, y0; cin >> n >> x0 >> y0; int t = 1; while(1) { if(x0 - t > 0) cout << "examine " << x0 - t << " " << y0 << endl; else break; string s; cin >> s; if(s == "true") t *= 2; else break; } t *= 2; int low = max(x0 - t, 0); int high = x0; while(high - low > 1) { int middle = (low + high) / 2; cout << "examine " << middle << " " << y0 << endl; string s; cin >> s; if(s == "true") high = middle; else low = middle; } int xL = high; t = 1; while(1) { if(x0 + t <= n) cout << "examine " << x0 + t << " " << y0 << endl; else break; string s; cin >> s; if(s == "true") t *= 2; else break; } t *= 2; low = x0; high = min(x0 + t, n + 1); while(high - low > 1) { int middle = (low + high) / 2; cout << "examine " << middle << " " << y0 << endl; string s; cin >> s; if(s == "true") low = middle; else high = middle; } int xR = low; int m = xR - xL + 1; t = 1; while(1) { if(y0 + t <= n) cout << "examine " << x0 << " " << y0 + t << endl; else break; string s; cin >> s; if(s == "true") t *= 2; else break; } t *= 2; low = y0; high = min(y0 + t, n + 1); while(high - low > 1) { int middle = (low + high) / 2; cout << "examine " << x0 << " " << middle << endl; string s; cin >> s; if(s == "true") low = middle; else high = middle; } int yU = low; int yD = yU - m + 1; int middleX = (xR + xL) / 2; int middleY = (yU + yD) / 2; int cornerX = middleX; string s; while(1) { if(cornerX + 2*m < n) cout << "examine " << cornerX + 2*m << " " << middleY << endl; else break; cin >> s; if(s == "true") cornerX += 2*m; else break; } int cornerY = middleY; while(1) { if(cornerY + 2*m < n) cout << "examine " << middleX << " " << cornerY + 2*m << endl; else break; cin >> s; if(s == "true") cornerY += 2*m; else break; } cout << "solution " << cornerX - 2*m - m/2 << " " << cornerY - 2*m - m/2 << endl; 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...
#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...