Submission #68390

#TimeUsernameProblemLanguageResultExecution timeMemory
68390nvmdavaAliens (IOI07_aliens)C++17
80 / 100
1081 ms548 KiB
#include <bits/stdc++.h> using namespace std; int n; char s[10]; bool ask(int x, int y){ if(x > n || x < 1 || y > n || y < 1){ return 0; } printf("examine %d %d\n", x, y); fflush(stdout); scanf("%s", &s); return (s[0] == 't'); } int x, y, m; int main(){ scanf("%d %d %d",&n,&x,&y); if(n > (1 << 29)){ cout<<"A"; } int left, right, up, down; int l = 0, r = x; while(l + 1 != r){ int m = (l + r) / 2; if(ask(m, y)){ r = m; } else { l = m; } } left = l; l = x, r = n + 1; while(l + 1 != r){ int m = (l + r) / 2; if(ask(m, y)){ l = m; } else { r = m; } } right = l; l = 0, r = y; while(l + 1 != r){ int m = (l + r) / 2; if(ask(x, m)){ r = m; } else { l = m; } } up = l; l = y, r = n + 1; while(l + 1 != r){ int m = (l + r) / 2; if(ask(x, m)){ l = m; } else { r = m; } } down = l; m = __gcd(right - left, down - up); right = left + m; down = up + m; x = (right + left) / 2 + 1; y = (down + up) / 2 + 1; if(m % 3 == 0){ if(ask(x, y + m / 3) == 0){ m /= 3; } } if(m % 5 == 0){ if(ask(x + m / 5, y) == 0){ m /= 5; } } right = left + m; down = up + m; x = (right + left) / 2 + 1; y = (down + up) / 2 + 1; while(ask(x - m, y - m) ){ x -= m; y -= m; } while(ask(x - 2 * m, y) ){ x -= 2 * m; } while(ask(x, y - 2 * m) ){ y -= m * 2; } printf("solution %d %d\n", x + 2 * m, y + 2 * m); }

Compilation message (stderr)

aliens.cpp: In function 'bool ask(int, int)':
aliens.cpp:13:16: warning: format '%s' expects argument of type 'char*', but argument 2 has type 'char (*)[10]' [-Wformat=]
  scanf("%s", &s);
              ~~^
aliens.cpp:13:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", &s);
  ~~~~~^~~~~~~~~~
aliens.cpp: In function 'int main()':
aliens.cpp:20:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d %d",&n,&x,&y);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~
#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...