제출 #440843

#제출 시각아이디문제언어결과실행 시간메모리
440843Haruto810198Worm Worries (BOI18_worm)C++17
0 / 100
455 ms992448 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define double long double #define FOR(i, l, r, d) for(int i=(l); i<=(r); i+=(d)) #define szof(x) ((int)(x).size()) #define vi vector<int> #define pii pair<int,int> #define pb push_back #define eb emplace_back #define mkp make_pair const int INF = 2147483647; const int LNF = INF*INF; const int MOD = 1000000007; const int mod = 998244353; //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") int X, Y, Z; int Q; vector<vector<vi>> arr; int query(int x, int y, int z){ int ret; if(arr[x][y][z] == 0){ cout<<"? "<<x<<" "<<y<<" "<<z<<endl; cin>>ret; arr[x][y][z] = ret; } else{ ret = arr[x][y][z]; } return ret; } int solve_1D(int y, int z){ int xl = 1, xr = X, xmid; while(xl + 1 < xr){ xmid = (xl + xr) / 2; if(query(xl, y, z) < query(xr, y, z)){ xl = xmid; } else{ xr = xmid; } } return (query(xl, y, z) > query(xr, y, z)) ? xl : xr; } signed main(){ //ios_base::sync_with_stdio(false); //cin.tie(0); //cout.tie(0); cin>>X>>Y>>Z>>Q; arr.resize(X + 1); for(auto& i : arr){ i.resize(Y + 1); for(auto& j : i){ j.resize(Z + 1); } } int res = solve_1D(1, 1); cout<<"! "<<res<<" 1 1"<<endl; return 0; }
#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...