結果
問題 | No.513 宝探し2 |
ユーザー | momoyuu |
提出日時 | 2024-09-30 00:56:13 |
言語 | C++23 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,648 bytes |
コンパイル時間 | 993 ms |
コンパイル使用メモリ | 112,132 KB |
実行使用メモリ | 25,604 KB |
平均クエリ数 | 48.42 |
最終ジャッジ日時 | 2024-09-30 00:56:20 |
合計ジャッジ時間 | 3,294 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | WA | - |
testcase_02 | WA | - |
testcase_03 | WA | - |
testcase_04 | WA | - |
testcase_05 | WA | - |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | WA | - |
testcase_10 | WA | - |
testcase_11 | WA | - |
コンパイルメッセージ
main.cpp: In function 'int main()': main.cpp:45:20: warning: 'n2' may be used uninitialized [-Wmaybe-uninitialized] 45 | ll d2 = ask(m2,0); | ~~~^~~~~~ main.cpp:36:11: note: 'n2' was declared here 36 | ll n1,n2; | ^~
ソースコード
#include<iostream>#include<vector>#include<algorithm>using namespace std;using ll = long long;#include<map>#include<cassert>int c;map<pair<ll,ll>,ll> memo;ll ask(ll x,ll y){if(memo.find({x,y})!=memo.end()) return memo[{x,y}];c++;if(c>100){assert(false);}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(x,m1);ll d2 = ask(x,m2);if(d1<=d2) {right = m2;cnt = 1;}else{left = m1;cnt = 2;}}for(ll y = left;y<=right;y++){ll d = ask(x,y);}}