Submission #1260658

#TimeUsernameProblemLanguageResultExecution timeMemory
1260658PlayVoltzAliens (IOI07_aliens)C++20
100 / 100
1 ms408 KiB
#include <cstdio> #include <stdio.h> #include <stdbool.h> #include <iostream> #include <map> #include <vector> #include <climits> #include <stack> #include <string> #include <queue> #include <algorithm> #include <set> #include <unordered_set> #include <unordered_map> #include <cmath> #include <cctype> #include <bitset> #include <iomanip> #include <cstring> #include <numeric> #include <cassert> #include <random> #include <chrono> #include <fstream> using namespace std; #define int long long #define pii pair<int, int> #define mp make_pair #define pb push_back #define fi first #define se second int n; bool query(int x, int y){ if (x<=0||y<=0||x>n||y>n)return 0; cout<<"examine "<<x<<" "<<y<<endl; string s; cin>>s; return (s=="true"); } int32_t main(){ //ios_base::sync_with_stdio(0); //cin.tie(0); //cout.tie(0); int x, y, m; cin>>n>>x>>y; int top=x, down=x, left=y, right=y; for (int i=0; i<32; ++i)if (!query(top+(1<<i), y)){ for (int j=i-1; j>=0; --j)if (query(top+(1<<j), y))top+=(1<<j); break; } for (int i=0; i<32; ++i)if (!query(down-(1<<i), y)){ for (int j=i-1; j>=0; --j)if (query(down-(1<<j), y))down-=(1<<j); break; } for (int i=0; i<32; ++i)if (!query(x, left-(1<<i))){ for (int j=i-1; j>=0; --j)if (query(x, left-(1<<j)))left-=(1<<j); break; } for (int i=0; i<32; ++i)if (!query(x, right+(1<<i))){ for (int j=i-1; j>=0; --j)if (query(x, right+(1<<j)))right+=(1<<j); break; } x=(top+down)/2, y=(left+right)/2, m=top-down+1; for (int i=-2; i<=2; ++i)for (int j=-2; j<=2; ++j){ int nx=x+i*m, ny=y+j*m; if ((i+2)%2==(j+2)%2&&query(nx, ny)&&query(nx+2*m, ny)&&query(nx-2*m, ny)&&query(nx, ny+2*m)&&query(nx, ny-2*m)){ cout<<"solution "<<nx<<" "<<ny<<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...