# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
102016 | 2019-03-21T14:12:51 Z | asifthegreat | Aliens (IOI07_aliens) | C++14 | 4 ms | 384 KB |
#include <bits/stdc++.h> #define int long long using namespace std; char s[100]; int q = 0; int n,lft,rght,mid; bool valid(int x,int y) { if(x <= 0 or y <= 0 or x > n or y > n)return false; return true; } bool query(int x,int y) { if(!valid(x,y))return false; printf("examine %lld %lld\n",x,y); fflush(stdout); scanf("%s",s); if(s[0] == 't')return true; return false; } void anss(int a,int b) { printf("solution %lld %lld\n",a,b); fflush(stdout); } int32_t main() { int x,y,k; scanf("%lld %lld %lld",&n,&x,&y); int temp_x = x,temp_y = y; // while(1){ //if(!query(temp_x+1ll,y))break; for(int i = 0; i <= 31;i++){ if(temp_x+(1ll<<i) > n)break; if(query(temp_x+(1ll<<i),y)){ temp_x += (1ll<<i); } else{ k = x+1ll<<i;break; } } // ebar temp_x theke k er moddhe ekta binary search kora lagbe ... lft = temp_x; rght = k; mid; while(rght-lft>1){ mid = (lft+rght)>>1; if(query(mid,y)){ lft = mid; } else{ rght = mid-1; } } if(query(rght,y))temp_x = rght; else temp_x = lft; //} //cout << q << endl; //cout << temp_x << endl; int niche = temp_x; temp_x = x; //while(1){ //if(!query(temp_x-1,y))break; for(int i = 0; i <= 31;i++){ if(temp_x-(1ll<<i) <= 0)break; if(query(temp_x-(1ll<<i),y)){ temp_x -= (1ll<<i); } else{ k = temp_x-(1ll<<i); } } lft = k; rght = temp_x; //int mid; while(rght-lft>1){ mid = (lft+rght)>>1; if(query(mid,y)){ rght = mid; } else{ lft = mid+1; } } if(query(lft,y))temp_x = lft; else temp_x = rght; //} //cout << q << endl; //cout << temp_x << endl; int upore = temp_x; //cout << niche << " " << upore << endl; int expand = niche-upore+1; //cout << expand << endl; //while(1){ //if(!query(x,temp_y+1ll))break; for(int i = 0; i <= 31;i++){ //if(x+(1ll > n)break; if(temp_y+(1ll<<i) > n)break; if(query(x,temp_y+(1ll<<i))){ temp_y += (1ll<<i); } else{ k = temp_y+(1ll<<i);break; } } //} lft = temp_x; rght = k; //int mid; while(rght-lft>1){ mid = (lft+rght)>>1; if(query(x,mid)){ lft = mid; } else{ rght = mid-1; } } if(query(x,rght))temp_y = rght; else temp_y = lft; int dan = temp_y; int bam = temp_y-expand+1; //{upore,niche,dan,bam roilo..} int per_upore = upore,per_niche = niche,per_dan = dan,per_bam = bam; //cout << q << endl; int uthlam = 0; while(1){ if(!query(upore-1,bam-1))break; uthlam++; upore--,bam--; upore = upore-expand+1; bam = bam-expand+1; //cout << upore << " " << bam << endl;//exit(0); } if(uthlam >= 4){ anss(upore+(expand*2)+(expand/2),bam+(expand*2)+(expand/2)); exit(0); } int bame_gesi = 0; while(1){ if(!query(upore,bam-expand-1))break; bam = bam-expand*2; bame_gesi++; } //cout << bam << endl; while(1){ if(bame_gesi)break; if(!query(upore-expand-1,bam))break; upore = upore-expand*2; } anss(upore+(expand*2)+(expand/2),bam+(expand*2)+(expand/2)); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 384 KB | Output is correct |
2 | Incorrect | 2 ms | 256 KB | Incorrect |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 384 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 256 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Incorrect | 4 ms | 256 KB | Incorrect |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 256 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 276 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 384 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 256 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 384 KB | Expected int32, but "4934659915" found |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 256 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |