Submission #288216

#TimeUsernameProblemLanguageResultExecution timeMemory
288216KastandaAliens (IOI07_aliens)C++11
60 / 100
2 ms368 KiB
// M #include<bits/stdc++.h> using namespace std; int n, m, nwx, nwy; int main() { scanf("%d%d%d", &n, &nwx, &nwy); auto Query = [&](int a, int b){ if (a < 1 || a > n || b < 1 || b > n) return false; printf("examine %d %d\n", a, b); fflush(stdout); char ss[7]; scanf("%s", ss); return (bool)(ss[0] == 't'); }; { int lg = 0; while (Query(nwx - (1 << lg), nwy)) lg ++; int left_gap = 0; for (int i = lg - 1; i >= 0; i --) if (Query(nwx - left_gap - (1 << i), nwy)) left_gap |= 1 << i; lg = 0; while (Query(nwx + (1 << lg), nwy)) lg ++; int right_gap = 0; for (int i = lg - 1; i >= 0; i --) if (Query(nwx + right_gap + (1 << i), nwy)) right_gap |= 1 << i; m = right_gap + left_gap + 1; nwx -= left_gap; lg = 0; while (Query(nwx, nwy - (1 << lg))) lg ++; int up_gap = 0; for (int i = lg - 1; i >= 0; i --) if (Query(nwx, nwy - up_gap - (1 << i))) up_gap |= 1 << i; nwy -= up_gap; int cx = 0, cy = 0; while (Query(nwx - m * (cx + 2), nwy)) cx += 2; if (Query(nwx - m * cx - m, nwy - m)) cx ++, cy ++; while (Query(nwx, nwy - m * (cy + 2))) cy += 2; nwx -= m * cx; nwy -= m * cy; nwx += m * 2 + m / 2; nwy += m * 2 + m / 2; printf("solution %d %d\n", nwx, nwy); fflush(stdout); } }

Compilation message (stderr)

aliens.cpp: In function 'int main()':
aliens.cpp:7:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    7 |         scanf("%d%d%d", &n, &nwx, &nwy);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
aliens.cpp: In lambda function:
aliens.cpp:15:22: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   15 |                 scanf("%s", ss);
      |                 ~~~~~^~~~~~~~~~
#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...