結果
問題 | No.513 宝探し2 |
ユーザー |
![]() |
提出日時 | 2024-09-30 00:53:41 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,563 bytes |
コンパイル時間 | 1,179 ms |
コンパイル使用メモリ | 111,984 KB |
実行使用メモリ | 25,220 KB |
平均クエリ数 | 24.33 |
最終ジャッジ日時 | 2024-09-30 00:53:45 |
合計ジャッジ時間 | 3,685 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 12 |
コンパイルメッセージ
main.cpp: In function 'int main()': main.cpp:36:20: warning: 'n2' may be used uninitialized [-Wmaybe-uninitialized] 36 | ll d2 = ask(m2,0); | ~~~^~~~~~ main.cpp:27:11: note: 'n2' was declared here 27 | ll n1,n2; | ^~
ソースコード
#include<iostream>#include<vector>#include<algorithm>using namespace std;using ll = long long;#include<map>map<pair<ll,ll>,ll> memo;ll ask(ll x,ll y){if(memo.find({x,y})!=memo.end()) return memo[{x,y}];cout<<x<<" "<<y<<endl;ll d;cin>>d;if(d==0){exit(0);}return memo[{x,y}] = d;}int main(){cin.tie(nullptr);ios::sync_with_stdio(false);ll left = 0;ll right = 100000;int cnt = 0;ll n1,n2;while(right-left>2){ll m1 = (21*left+13*right) / 34;ll m2 = (21*right+13*left) / 34;if(cnt==1) m1 = n1;if(cnt==2) m2 = n2;n1 = m1;n2 = m2;ll d1 = ask(m1,0);ll d2 = ask(m2,0);if(d1<=d2) {right = m2;cnt = 1;}else{left = m1;cnt = 2;}}ll use;ll mn = 1e9;for(ll x = left;x<=right;x++){ll d = ask(x,0);if(d<mn){mn = d;use = x;}}ll x = mn;left = 0;right = 100000;cnt = 0;n1,n2;while(right-left>2){ll m1 = (21*left+13*right) / 34;ll m2 = (21*right+13*left) / 34;if(cnt==1) m1 = n1;if(cnt==2) m2 = n2;n1 = m1;n2 = m2;ll d1 = ask(m1,0);ll d2 = ask(m2,0);if(d1<=d2) {right = m2;cnt = 1;}else{left = m1;cnt = 2;}}for(ll x = left;x<=right;x++){ll d = ask(x,0);}}