QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#185564 | #4884. Battleship: New Rules | Crysfly | WA | 1ms | 5588kb | C++20 | 1.7kb | 2023-09-22 11:51:18 | 2023-09-22 11:51:20 |
Judging History
answer
// what is matter? never mind.
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);++i)
#define Rep(i,a,b) for(int i=(a);i>=(b);--i)
using namespace std;
inline int read()
{
char c=getchar();int x=0;bool f=0;
for(;!isdigit(c);c=getchar())f^=!(c^45);
for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);
if(f)x=-x;return x;
}
#define fi first
#define se second
#define pb push_back
#define mkp make_pair
typedef pair<int,int>pii;
typedef vector<int>vi;
#define maxn 400005
#define inf 0x3f3f3f3f
int n;
int vis[1005][1005],b[1005][1005];
int q(int x,int y){
//cout<<"q "<<x<<" "<<y<<"\n";
if(x<1||y<1||x>=n||y>=n)return 0;
if(~vis[x][y])return vis[x][y];
cout<<"? "<<x<<" "<<y<<endl;
cin>>vis[x][y]; return vis[x][y];
}
int Q(int x,int y){
For(i,0,1)For(j,0,1)if(q(x+i,y+j))return 1;
return 0;
}
bool chk(int x1,int x2,int y1,int y2){
int res=0;
For(i,x1,x2)For(j,y1,y2)res^=(!b[i][j]);
return res;
}
void mark(int x,int y){
if(q(x,y)) b[x-1][y-1]=b[x][y]=b[x-1][y]=b[x][y-1]=1;
}
void solve(int x1,int x2,int y1,int y2){
// cout<<"solve "<<x1<<" "<<x2<<" "<<y1<<" "<<y2<<"\n";
if(x1==x2&&y1==y2){
cout<<"! "<<x1<<" "<<y1<<endl;
return;
}
if(x2-x1>y2-y1){
int mid=x1+x2>>1;
For(i,y1,y2) mark(mid+1,i);
if(chk(x1,mid,y1,y2))solve(x1,mid,y1,y2);
else solve(mid+1,x2,y1,y2);
}else{
int mid=y1+y2>>1;
For(i,x1,x2) mark(i,mid+1);
if(chk(x1,x2,y1,mid))solve(x1,x2,y1,mid);
else solve(x1,x2,mid+1,y2);
}
}
void work()
{
cin>>n;++n;
For(i,0,n)For(j,0,n)vis[i][j]=-1,b[i][j]=0;
if(n%2==0){
cout<<"! "<<-1<<" "<<-1<<endl;
return;
}
solve(1,n,1,n);
}
signed main()
{
int T;cin>>T;
while(T--){
work();
int x;cin>>x;
}
return 0;
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 5588kb
input:
2 3 1 4 1 1 0 1 1 0 1
output:
! -1 -1 ? 1 4 ? 2 4 ? 3 4 ? 4 4 ? 4 1 ? 4 2 ? 4 3 ! 5 3
result:
wrong output format Unexpected end of file - int32 expected (test case 2)