Submission #447747

#TimeUsernameProblemLanguageResultExecution timeMemory
447747rainboyAliens (IOI07_aliens)C11
100 / 100
3 ms200 KiB
#include <stdio.h> int query(long long x, long long y) { static char s[8]; printf("examine %lld %lld\n", x, y), fflush(stdout); scanf("%s", s); return s[0] == 't'; } int main() { long long n, x, y, di, dj, lower, upper, k, s, x_, y_; scanf("%lld%lld%lld", &n, &x, &y); lower = 0, upper = 1; while (x - upper >= 1 && query(x - upper, y)) lower = upper, upper *= 2; while (upper - lower > 1) { k = (lower + upper) / 2; if (x - k >= 1 && query(x - k, y)) lower = k; else upper = k; } x_ = lower; lower = 0, upper = 1; while (x + upper <= n && query(x + upper, y)) lower = upper, upper *= 2; while (upper - lower > 1) { k = (lower + upper) / 2; if (x + k <= n && query(x + k, y)) lower = k; else upper = k; } s = x_ + 1 + lower; lower = 0, upper = 1; while (y - upper >= 1 && query(x, y - upper)) lower = upper, upper *= 2; while (upper - lower > 1) { k = (lower + upper) / 2; if (y - k >= 1 && query(x, y - k)) lower = k; else upper = k; } y_ = lower; x += s / 2 - x_, y += s / 2 - y_; x_ = y_ = 0; for (di = -4; di <= 4; di++) for (dj = -4; dj <= 4; dj++) if ((di + dj) % 2 == 0) { long long x1 = x + s * di, y1 = y + s * dj; if (x1 >= 1 && x1 <= n && y1 >= 1 && y1 <= n && query(x1, y1)) x_ += x1, y_ += y1; } x_ /= 13, y_ /= 13; printf("solution %lld %lld\n", x_, y_); return 0; }

Compilation message (stderr)

aliens.c: In function 'query':
aliens.c:7:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
    7 |  scanf("%s", s);
      |  ^~~~~~~~~~~~~~
aliens.c: In function 'main':
aliens.c:14:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |  scanf("%lld%lld%lld", &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...