Submission #500510

#TimeUsernameProblemLanguageResultExecution timeMemory
500510LittleCubeWorm Worries (BOI18_worm)C++14
10 / 100
1 ms340 KiB
#include <bits/stdc++.h> int arr[1000005]; int query(int x, int y, int z) { if (arr[x] == 0) { printf("? %d %d %d\n", x, y, z); fflush(stdout); int ans = -1; (void)scanf("%d", &ans); if (ans == -1) exit(0); arr[x] = ans; } return arr[x]; } __attribute__((noreturn)) void guess(int x, int y, int z) { printf("! %d %d %d\n", x, y, z); exit(0); } int main() { int N, M, K, Q; (void)scanf("%d %d %d %d", &N, &M, &K, &Q); if (M == 1 && K == 1) { int L = 1, R = N; int lmid = round(0.618 * L + 0.382 * R), rmid = round(0.382 * L + 0.618 * R); while (L < R) { if(R - L + 1 == 3) lmid = L + 1, rmid = L + 2; int lans = query(lmid, 1, 1), rans = query(rmid, 1, 1); if (lans >= rans) { R = rmid - 1; rmid = lmid; lmid = round(0.618 * L + 0.382 * R); } else { L = lmid + 1; lmid = rmid; rmid = round(0.382 * L + 0.618 * R); } } guess(L, 1, 1); } } // 1 4 2 5 8 | 4 2 5 4 2

Compilation message (stderr)

worm.cpp: In function 'int query(int, int, int)':
worm.cpp:12:20: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |         (void)scanf("%d", &ans);
      |               ~~~~~^~~~~~~~~~~~
worm.cpp: In function 'int main()':
worm.cpp:29:16: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |     (void)scanf("%d %d %d %d", &N, &M, &K, &Q);
      |           ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...