Submission #79138

#TimeUsernameProblemLanguageResultExecution timeMemory
79138SherazinAliens (IOI07_aliens)C++14
100 / 100
5 ms572 KiB
#include <bits/stdc++.h> #define int long long #define pii pair<int, int> #define x first #define y second using namespace std; int n, a, b, m; map<pii, int> mp; void print(const char *c, int x, int y) { printf(c, x, y), fflush(stdout); } bool get(int x, int y) { if(x < 1 || x > n || y < 1 || y > n) return false; if(!mp.count(pii(x, y))) { char s[10]; print("examine %lld %lld\n", x, y); scanf(" %s", s); mp[pii(x, y)] = (s[0] == 't'); } return mp[pii(x, y)]; } int find(int x, int y, int dx, int dy) { int d = 1; while(get(x + dx*d, y + dy*d)) d <<= 1; int l = d >> 1, r = d; while(l < r) { int m = (l + r + 1) >> 1; if(get(a + dx*m, b + dy*m)) l = m; else r = m-1; } return l; } int32_t main() { scanf("%lld %lld %lld", &n, &a, &b); int left = find(a, b, -1, 0), right = find(a, b, 1, 0); int up = find(a, b, 0, 1), down = find(a, b, 0, -1); m = right + left + 1; int xm = (2*a + right - left) / 2, ym = (2*b + up - down) / 2; while(get(xm - 2*m, ym)) xm -= 2*m; while(get(xm, ym - 2*m)) ym -= 2*m; while(get(xm - m, ym - m)) xm -= m, ym -= m; int ax = xm + m*2, ay = ym + m*2; print("solution %lld %lld\n", ax, ay); return 0; }

Compilation message (stderr)

aliens.cpp: In function 'bool get(long long int, long long int)':
aliens.cpp:20:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf(" %s", s);
   ~~~~~^~~~~~~~~~
aliens.cpp: In function 'int32_t main()':
aliens.cpp:39:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld %lld %lld", &n, &a, &b);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...