Submission #1188067

#TimeUsernameProblemLanguageResultExecution timeMemory
1188067kl0989eWorm Worries (BOI18_worm)C++20
10 / 100
0 ms408 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define pb push_back #define vi vector<int> #define vl vector<ll> #define pi pair<int, int> #define pl pair<ll,ll> #define all(x) (x).begin(),(x).end() map<array<int,3>,int> mem; int n, m, k, q; int query(int x=1, int y=1, int z=1) { if (mem.count({x,y,z})) { return mem[{x,y,z}]; } if (x<1 || n<x || y<1 || m<y || z<1 || k<z) { return 0; } printf("? %d %d %d\n", x, y, z); fflush(stdout); int ans = -1; (void)scanf("%d", &ans); if (ans == -1) exit(0); mem[{x,y,z}]=ans; return ans; } __attribute__((noreturn)) void guess(int x=1, int y=1, int z=1) { printf("! %d %d %d\n", x, y, z); exit(0); } int main() { (void)scanf("%d %d %d %d", &n, &m, &k, &q); int l=1,r=n; while (l<r) { int m=l+(r-l)/2; if (query(m)>=query(m+1)) { r=m; } else { l=m+1; } } guess(l); }

Compilation message (stderr)

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