結果
| 問題 |
No.513 宝探し2
|
| コンテスト | |
| ユーザー |
aim_cpo
|
| 提出日時 | 2018-02-26 01:55:46 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,009 bytes |
| コンパイル時間 | 1,802 ms |
| コンパイル使用メモリ | 167,188 KB |
| 実行使用メモリ | 25,568 KB |
| 平均クエリ数 | 31.25 |
| 最終ジャッジ日時 | 2024-07-16 15:36:44 |
| 合計ジャッジ時間 | 5,113 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 4 WA * 8 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
int main(){
int minx=0,maxx=100000;
cout<<minx<<" "<<0<<"\n";
int d1;cin>>d1;
if(d1==0)return 0;
cout<<maxx<<" "<<0<<"\n";
int d2;cin>>d2;
if(d2==0)return 0;
int leftdis=0,rightdis=0;
if(d1>=d2){
minx=(minx+maxx)/2;
leftdis=0;
rightdis=d2;
}else{
maxx=(minx+maxx)/2;
leftdis=d1;
rightdis=0;
}
while(maxx-minx>5){
int mid=(minx+maxx)/2;
cout<<mid<<" "<<0<<"\n";
int d;cin>>d;
if(d==0)return 0;
if(leftdis==0){
leftdis=d;
if(leftdis>rightdis){
leftdis=0;
minx=mid;
}else{
rightdis=0;
maxx=mid;
}
}else{
rightdis=d;
if(leftdis>rightdis){
leftdis=0;
minx=mid;
}else{
rightdis=0;
maxx=mid;
}
}
}
int resx=minx;
int nowdis=999999999;
for(int i=minx;i<=maxx;i++){
cout<<i<<" "<<0<<"\n";
int dd;cin>>dd;
if(dd==0)return 0;
if(dd<nowdis){
nowdis=dd;
resx=i;
}
}
int miny=0,maxy=100000;
cout<<resx<<" "<<miny<<"\n";
d1;cin>>d1;
if(d1==0)return 0;
cout<<resx<<" "<<maxy<<"\n";
d2;cin>>d2;
if(d2==0)return 0;
leftdis=0,rightdis=0;
if(d1>=d2){
miny=(miny+maxy)/2;
leftdis=0;
rightdis=d2;
}else{
maxy=(miny+maxy)/2;
leftdis=d1;
rightdis=0;
}
while(maxy-miny>5){
int mid=(miny+maxy)/2;
cout<<resx<<" "<<mid<<"\n";
int d;cin>>d;
if(d==0)return 0;
if(leftdis==0){
leftdis=d;
if(leftdis>rightdis){
leftdis=0;
miny=mid;
}else{
rightdis=0;
maxy=mid;
}
}else{
rightdis=d;
if(leftdis>rightdis){
leftdis=0;
miny=mid;
}else{
rightdis=0;
maxy=mid;
}
}
}
int resy=miny;
nowdis=999999999;
for(int i=miny;i<=maxy;i++){
cout<<resx<<" "<<i<<"\n";
int dd;cin>>dd;
if(dd==0)return 0;
if(dd<nowdis){
nowdis=dd;
resx=i;
}
}
return 0;
}
aim_cpo