Submission #288219

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

Compilation message (stderr)

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