QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#827279#2567. Hidden RookcwfxlhAC ✓113ms3688kbC++147.1kb2024-12-22 21:00:332024-12-22 21:01:53

Judging History

This is the latest submission verdict.

  • [2024-12-22 21:01:53]
  • Judged
  • Verdict: AC
  • Time: 113ms
  • Memory: 3688kb
  • [2024-12-22 21:00:33]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
int T,n,m,xa,xb,k1,k2,k3,k4,k5,k6,k7,k8,k9,lenx,leny;
bool chk(int xl,int yl,int xr,int yr){
	if(xl==xr||yl==yr)return false;
	if(xl<1||yl<1||xr>n||yr>m)return false;
	if(xr-xl==yr-yl)return false;
	return true;
}
int getquery(int a,int b,int c,int d){
	cout<<"? "<<a<<' '<<b<<' '<<c<<' '<<d<<'\n';
	fflush(stdout);
	cin>>k1;
	return k1;
}
void sol(int xl,int yl,int xr,int yr){
	if(xl==xr&&yl==yr){
		cout<<"! "<<xl<<" "<<yl<<'\n';
		fflush(stdout);
		return;
	}
	lenx=(xr-xl+2)/2;
	leny=(yr-yl+2)/2;
	if(xl==1&&yl==1&&xr==n&&yr==m){
		if(lenx==leny){
			if(n<=12||m<=12){
				if(n<m)leny++;
				else lenx++;
			}
			else{
				if(n==m)lenx--;
				else{
					if(n<m)lenx--;
					else leny--;
				}
			}
		}
		k1=getquery(1,1,lenx,leny);
		if(k1==0){sol(lenx+1,leny+1,n,m);return;}
		if(k1==lenx+leny-1){sol(1,1,lenx,leny);return;}
		if(k1==leny){sol(1,leny+1,lenx,m);return;}
		if(k1==lenx){sol(lenx+1,1,n,leny);return;}
		return;
	}
	if(xl==xr){
		if(xl>1)k1=getquery(xl-1,yl,xl,yl+leny-1);
		else k1=getquery(xl,yl,xl+1,yl+leny-1);
		if(k1==leny+1)sol(xl,yl,xr,yl+leny-1);
		else sol(xl,yl+leny,xr,yr);
		return;
	}
	if(yl==yr){
		if(yl>1)k1=getquery(xl,yl-1,xl+lenx-1,yl);
		else k1=getquery(xl,yl,xl+lenx-1,yl+1);
		if(k1==lenx+1)sol(xl,yl,xl+lenx-1,yr);
		else sol(xl+lenx,yl,xr,yr);
		return;
	}
	if(n==3&&m==3&&(xr-xl+1==3||yr-yl+1==3)){
		lenx=leny=1;
		if(xr-xl+1==3)lenx=3;
		else leny=3;
	}
	if(chk(xl,yl,xl+lenx-1,yl+leny-1)){
		k1=getquery(xl,yl,xl+lenx-1,yl+leny-1);
		if(k1==0){sol(xl+lenx,yl+leny,xr,yr);return;}
		if(k1==leny){sol(xl,yl+leny,xl+lenx-1,yr);return;}
		if(k1==lenx){sol(xl+lenx,yl,xr,yl+leny-1);return;}
		if(k1==lenx+leny-1){sol(xl,yl,xl+lenx-1,yl+leny-1);return;}
		return;
	}
	if(chk(xl-1,yl,xl+lenx-1,yl+leny-1)){
		k1=getquery(xl-1,yl,xl+lenx-1,yl+leny-1);
		if(k1==0){sol(xl+lenx,yl+leny,xr,yr);return;}
		if(k1==leny){sol(xl,yl+leny,xl+lenx-1,yr);return;}
		if(k1==lenx+1){sol(xl+lenx,yl,xr,yl+leny-1);return;}
		if(k1==lenx+1+leny-1){sol(xl,yl,xl+lenx-1,yl+leny-1);return;}
		return;
	}
	if(chk(xl,yl-1,xl+lenx-1,yl+leny-1)){
		k1=getquery(xl,yl-1,xl+lenx-1,yl+leny-1);
		if(k1==0){sol(xl+lenx,yl+leny,xr,yr);return;}
		if(k1==leny+1){sol(xl,yl+leny,xl+lenx-1,yr);return;}
		if(k1==lenx){sol(xl+lenx,yl,xr,yl+leny-1);return;}
		if(k1==lenx+leny+1-1){sol(xl,yl,xl+lenx-1,yl+leny-1);return;}
		return;
	}
	if(chk(xr-lenx+1,yr-leny+1,xr+1,yr)){
		k1=getquery(xr-lenx+1,yr-leny+1,xr+1,yr);
		if(k1==0){sol(xl,yl,xr-lenx,yr-leny);return;}
		if(k1==leny){sol(xr-lenx+1,yl,xr,yr-leny);return;}
		if(k1==lenx+1){sol(xl,yr-leny+1,xr-lenx,yr);return;}
		if(k1==lenx+1+leny-1){sol(xr-lenx+1,yr-leny+1,xr,yr);return;}
		return;
	}
	if(chk(xr-lenx+1,yr-leny+1,xr,yr+1)){
		k1=getquery(xr-lenx+1,yr-leny+1,xr,yr+1);
		if(k1==0){sol(xl,yl,xr-lenx,yr-leny);return;}
		if(k1==leny+1){sol(xr-lenx+1,yl,xr,yr-leny);return;}
		if(k1==lenx){sol(xl,yr-leny+1,xr-lenx,yr);return;}
		if(k1==lenx+leny+1-1){sol(xr-lenx+1,yr-leny+1,xr,yr);return;}
		return;
	}
	if(lenx==leny&&n<=7&&m<=7){
		if(xr-xl+1<yr-yl+1)leny++;
		else lenx++;
	}
	if(chk(xl-1,yl-1,xl+lenx-1,yl+leny-1)){
		k1=getquery(xl-1,yl-1,xl+lenx-1,yl+leny-1);
		if(k1==0){sol(xl+lenx,yl+leny,xr,yr);return;}
		if(k1==lenx+1){sol(xl+lenx,yl,xr,yl+leny-1);return;}
		if(k1==leny+1){sol(xl,yl+leny,xl+lenx-1,yr);return;}
		if(k1==lenx+1+leny+1-1){sol(xl,yl,xl+lenx-1,yl+leny-1);return;}
		return;
	}
	if(chk(xl-2,yl-1,xl+lenx-1,yl+leny-1)){
		k1=getquery(xl-2,yl-1,xl+lenx-1,yl+leny-1);
		if(k1==0){sol(xl+lenx,yl+leny,xr,yr);return;}
		if(k1==lenx+2){sol(xl+lenx,yl,xr,yl+leny-1);return;}
		if(k1==leny+1){sol(xl,yl+leny,xl+lenx-1,yr);return;}
		if(k1==lenx+2+leny+1-1){sol(xl,yl,xl+lenx-1,yl+leny-1);return;}
		return;
	}
	if(chk(xl-1,yl-2,xl+lenx-1,yl+leny-1)){
		k1=getquery(xl-1,yl-2,xl+lenx-1,yl+leny-1);
		if(k1==0){sol(xl+lenx,yl+leny,xr,yr);return;}
		if(k1==lenx+1){sol(xl+lenx,yl,xr,yl+leny-1);return;}
		if(k1==leny+2){sol(xl,yl+leny,xl+lenx-1,yr);return;}
		if(k1==lenx+1+leny+2-1){sol(xl,yl,xl+lenx-1,yl+leny-1);return;}
		return;
	}
	
	if(chk(xl-1,yr-leny+1,xl+lenx-1,yr+1)){
		k1=getquery(xl-1,yr-leny+1,xl+lenx-1,yr+1);
		if(k1==0){sol(xl+lenx,yl,xr,yr-leny);return;}
		if(k1==lenx+1){sol(xl+lenx,yr-leny+1,xr,yr);return;}
		if(k1==leny+1){sol(xl,yl,xl+lenx-1,yr-leny);return;}
		if(k1==lenx+1+leny+1-1){sol(xl,yr-leny+1,xl+lenx-1,yr);return;}
		return;
	}
	if(chk(xl-2,yr-leny+1,xl+lenx-1,yr+1)){
		k1=getquery(xl-2,yr-leny+1,xl+lenx-1,yr+1);
		if(k1==0){sol(xl+lenx,yl,xr,yr-leny);return;}
		if(k1==lenx+2){sol(xl+lenx,yr-leny+1,xr,yr);return;}
		if(k1==leny+1){sol(xl,yl,xl+lenx-1,yr-leny);return;}
		if(k1==lenx+2+leny+1-1){sol(xl,yr-leny+1,xl+lenx-1,yr);return;}
		return;
	}
	if(chk(xl-1,yr-leny+1,xl+lenx-1,yr+2)){
		k1=getquery(xl-1,yr-leny+1,xl+lenx-1,yr+2);
		if(k1==0){sol(xl+lenx,yl,xr,yr-leny);return;}
		if(k1==lenx+1){sol(xl+lenx,yr-leny+1,xr,yr);return;}
		if(k1==leny+2){sol(xl,yl,xl+lenx-1,yr-leny);return;}
		if(k1==lenx+1+leny+2-1){sol(xl,yr-leny+1,xl+lenx-1,yr);return;}
		return;
	}
	
	if(chk(xr-lenx+1,yl-1,xr+1,yl+leny-1)){
		k1=getquery(xr-lenx+1,yl-1,xr+1,yl+leny-1);
		if(k1==0){sol(xl,yl+leny,xr-lenx,yr);return;}
		if(k1==lenx+1){sol(xl,yl,xr-lenx,yl+leny-1);return;}
		if(k1==leny+1){sol(xr-lenx+1,yl+leny,xr,yr);return;}
		if(k1==lenx+1+leny+1-1){sol(xr-lenx+1,yl,xr,yl+leny-1);return;}
		return;
	}
	if(chk(xr-lenx+1,yl-1,xr+2,yl+leny-1)){
		k1=getquery(xr-lenx+1,yl-1,xr+2,yl+leny-1);
		if(k1==0){sol(xl,yl+leny,xr-lenx,yr);return;}
		if(k1==lenx+2){sol(xl,yl,xr-lenx,yl+leny-1);return;}
		if(k1==leny+1){sol(xr-lenx+1,yl+leny,xr,yr);return;}
		if(k1==lenx+2+leny+1-1){sol(xr-lenx+1,yl,xr,yl+leny-1);return;}
		return;
	}
	if(chk(xr-lenx+1,yl-2,xr+1,yl+leny-1)){
		k1=getquery(xr-lenx+1,yl-2,xr+1,yl+leny-1);
		if(k1==0){sol(xl,yl+leny,xr-lenx,yr);return;}
		if(k1==lenx+1){sol(xl,yl,xr-lenx,yl+leny-1);return;}
		if(k1==leny+2){sol(xr-lenx+1,yl+leny,xr,yr);return;}
		if(k1==lenx+1+leny+2-1){sol(xr-lenx+1,yl,xr,yl+leny-1);return;}
		return;
	}
	
	if(chk(xr-lenx+1,yr-leny+1,xr+1,yr+1)){
		k1=getquery(xr-lenx+1,yr-leny+1,xr+1,yr+1);
		if(k1==0){sol(xl,yl,xr-lenx,yr-leny);return;}
		if(k1==lenx+1){sol(xl,yr-leny+1,xr-lenx,yr);return;}
		if(k1==leny+1){sol(xr-lenx+1,yl,xr,yr-leny);return;}
		if(k1==lenx+1+leny+1-1){sol(xr-lenx+1,yr-leny+1,xr,yr);return;}
		return;
	}
	if(chk(xr-lenx+1,yr-leny+1,xr+2,yr+1)){
		k1=getquery(xr-lenx+1,yr-leny+1,xr+2,yr+1);
		if(k1==0){sol(xl,yl,xr-lenx,yr-leny);return;}
		if(k1==lenx+2){sol(xl,yr-leny+1,xr-lenx,yr);return;}
		if(k1==leny+1){sol(xr-lenx+1,yl,xr,yr-leny);return;}
		if(k1==lenx+2+leny+1-1){sol(xr-lenx+1,yr-leny+1,xr,yr);return;}
		return;
	}
	if(chk(xr-lenx+1,yr-leny+1,xr+1,yr+2)){
		k1=getquery(xr-lenx+1,yr-leny+1,xr+1,yr+2);
		if(k1==0){sol(xl,yl,xr-lenx,yr-leny);return;}
		if(k1==lenx+1){sol(xl,yr-leny+1,xr-lenx,yr);return;}
		if(k1==leny+2){sol(xr-lenx+1,yl,xr,yr-leny);return;}
		if(k1==lenx+1+leny+2-1){sol(xr-lenx+1,yr-leny+1,xr,yr);return;}
		return;
	}
	return;
}
int main(){
	cin>>T;
	while(T--){
		cin>>n>>m;
		sol(1,1,n,m);
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3612kb

input:

2
6 6
6
3
2
1
7 5
3
3
2

output:

? 1 1 4 3
? 3 2 5 3
? 1 1 3 2
? 1 2 1 3
! 2 3
? 1 1 4 3
? 3 3 5 4
? 1 3 1 4
! 1 4

result:

ok Good (2 test cases)

Test #2:

score: 0
Accepted
time: 1ms
memory: 3560kb

input:

3
15 15
14
5
3
4
3 15
8
5
3
2
15 15
8
4
4
4

output:

? 1 1 7 8
? 4 5 8 8
? 1 4 2 6
? 2 6 4 7
! 2 7
? 1 1 2 8
? 2 12 3 15
? 1 12 2 13
? 1 12 2 12
! 2 12
? 1 1 7 8
? 1 8 4 12
? 4 9 6 10
? 3 8 5 9
! 5 9

result:

ok Good (3 test cases)

Test #3:

score: 0
Accepted
time: 0ms
memory: 3688kb

input:

100
6 6
6
4
2
1
3 4
2
3
2
7 8
5
0
2
5 6
0
2
1
9 4
5
4
2
11 4
6
0
2
15 12
8
3
4
2
5 9
7
0
2
6 7
3
4
4
1
9 9
10
4
2
2
11 4
6
0
2
12 7
4
0
2
14 7
0
4
4
1
9 6
0
4
3
12 11
7
4
2
1
3 14
7
5
3
2
15 12
0
6
3
4
7 10
8
0
0
15 5
0
0
3
2
11 9
5
4
4
2
14 7
4
5
3
2
15 10
0
4
4
4
7 4
4
3
5 13
7
3
4
2
13 8
0
3
3
15...

output:

? 1 1 4 3
? 3 2 5 3
? 2 1 4 2
? 3 2 3 3
! 4 3
? 1 1 2 3
? 2 1 3 2
? 2 1 3 1
! 3 1
? 1 1 4 5
? 1 5 2 7
? 3 7 3 8
! 3 8
? 1 1 3 4
? 3 4 5 5
? 4 5 4 6
! 5 6
? 1 1 5 2
? 5 2 7 3
? 6 1 6 2
! 6 2
? 1 1 6 2
? 9 2 11 3
? 7 1 7 2
! 7 1
? 1 1 8 6
? 9 1 12 3
? 8 4 10 5
? 7 3 9 4
! 9 5
? 1 1 3 5
? 1 1 2 3
? 2 4...

result:

ok Good (100 test cases)

Test #4:

score: 0
Accepted
time: 2ms
memory: 3604kb

input:

50
9 8
0
3
3
4 11
0
2
3
2
9 11
6
6
2
1
13 8
4
2
4
2
4 15
8
2
3
1
8 9
4
2
2
1
11 12
6
0
2
2
11 14
0
0
4
1
14 14
0
5
4
3
8 3
5
0
2
6 7
6
0
1
4 12
6
0
3
1
6 4
4
3
9 15
0
2
0
2
12 7
9
0
3
13 14
6
4
4
0
12 11
7
3
2
1
12 13
6
4
4
3
8 5
6
2
2
8 10
5
2
4
1
13 3
7
2
2
8 10
0
3
4
15 15
0
4
4
4
8 3
5
4
1
8 5
4...

output:

? 1 1 5 4
? 5 5 7 6
? 6 4 8 5
! 9 5
? 1 1 2 6
? 2 7 3 9
? 3 7 4 8
? 3 7 4 7
! 4 7
? 1 1 5 6
? 1 6 3 9
? 1 6 2 8
? 2 7 3 7
! 3 8
? 1 1 7 4
? 1 5 4 6
? 3 6 5 7
? 3 6 3 7
! 3 7
? 1 1 2 8
? 2 12 3 15
? 1 12 2 13
? 1 12 2 12
! 1 13
? 1 1 4 5
? 5 1 6 3
? 6 2 7 4
? 7 2 8 2
! 8 3
? 1 1 6 7
? 7 1 9 4
? 9 4 1...

result:

ok Good (50 test cases)

Test #5:

score: 0
Accepted
time: 0ms
memory: 3632kb

input:

50
9 14
5
2
4
1
15 4
9
0
3
2
6 6
3
4
2
1
10 11
10
0
0
10 3
5
2
3
1
12 13
12
6
3
1
5 15
3
2
2
1
15 9
12
4
3
4
11 7
4
3
4
2
3 8
5
2
2
7 7
8
4
2
1
12 9
10
4
3
2
3 5
3
2
2
5 3
4
0
10 12
6
3
2
1
7 3
2
2
2
11 11
6
6
4
4
15 8
11
0
2
2
11 11
6
4
0
7 14
7
5
0
2
9 8
4
2
4
2
7 6
6
2
1
6 6
4
3
15 4
9
0
3
2
9 11...

output:

? 1 1 5 7
? 6 1 7 4
? 7 3 8 5
? 7 3 8 3
! 8 4
? 1 1 8 2
? 5 2 8 3
? 1 1 2 2
? 1 1 1 2
! 1 1
? 1 1 4 3
? 1 3 2 5
? 1 3 3 4
? 1 4 1 5
! 2 5
? 1 1 5 6
? 3 4 6 6
? 2 2 3 4
! 1 1
? 1 1 5 2
? 8 2 10 3
? 8 1 9 2
? 8 1 8 2
! 9 1
? 1 1 6 7
? 1 1 3 4
? 2 3 4 4
? 1 3 2 3
! 1 4
? 1 1 3 8
? 3 1 4 4
? 4 1 5 2
? 4...

result:

ok Good (50 test cases)

Test #6:

score: 0
Accepted
time: 2ms
memory: 3564kb

input:

50
14 14
7
6
0
2
6 3
0
2
13 6
0
4
4
2
11 13
7
3
4
2
9 4
6
3
1
10 12
6
3
0
3 12
0
3
3
1
12 5
0
2
3
2
13 4
8
0
2
9 9
0
2
2
10 6
0
2
2
3 5
3
2
1
6 12
8
0
2
7 9
0
3
2
10 11
5
3
0
8 5
6
0
1
5 4
3
2
1
7 5
4
4
4
2
13 4
8
4
3
1
5 14
9
0
3
1
4 13
7
2
3
1
5 13
3
5
3
2
10 5
5
2
3
2
9 8
0
3
0
4 12
2
4
3
2
5 7
3...

output:

? 1 1 6 7
? 1 8 3 11
? 1 7 2 9
? 2 10 3 10
! 3 10
? 1 1 3 2
? 4 2 5 3
! 6 3
? 1 1 7 3
? 8 4 10 5
? 7 3 9 4
? 8 3 8 4
! 8 4
? 1 1 6 7
? 1 7 3 10
? 3 8 5 9
? 2 7 4 8
! 4 9
? 1 1 5 2
? 3 2 5 3
? 1 1 1 2
! 2 2
? 1 1 5 6
? 1 6 3 9
? 3 6 4 8
! 5 9
? 1 1 2 6
? 2 7 3 9
? 2 10 3 11
? 2 10 3 10
! 3 11
? 1 1 6...

result:

ok Good (50 test cases)

Test #7:

score: 0
Accepted
time: 2ms
memory: 3628kb

input:

50
12 15
0
0
4
4
6 7
4
3
2
10 5
7
0
1
11 9
6
6
4
0
14 5
3
5
2
2
14 8
0
0
3
15 12
6
6
2
4
8 13
10
5
3
1
4 15
2
4
3
2
12 8
0
0
2
1
6 12
0
2
3
1
11 5
6
3
3
13 6
3
4
2
2
11 13
0
4
2
2
9 7
8
4
2
2
5 13
0
2
3
2
5 6
6
0
1
14 7
0
5
4
1
8 10
8
4
0
13 9
11
6
2
2
10 11
6
0
0
8 10
0
3
4
12 6
3
4
2
2
11 13
6
0
0...

output:

? 1 1 6 8
? 7 9 9 12
? 9 13 11 14
? 8 12 10 13
! 10 13
? 1 1 3 4
? 1 4 2 6
? 1 6 1 7
! 1 7
? 1 1 5 3
? 1 1 3 2
? 4 2 4 3
! 5 3
? 1 1 6 5
? 6 1 9 3
? 6 1 8 2
? 5 2 7 3
! 8 1
? 1 1 7 3
? 1 3 4 4
? 1 3 2 4
? 3 3 3 4
! 3 4
? 1 1 7 4
? 8 5 11 6
? 11 6 13 7
! 14 7
? 1 1 8 6
? 1 7 4 9
? 1 6 2 8
? 1 6 3 7
!...

result:

ok Good (50 test cases)

Test #8:

score: 0
Accepted
time: 2ms
memory: 3628kb

input:

50
11 11
7
3
3
10 11
6
0
4
4 4
0
1
13 12
6
4
4
3
14 9
11
4
3
2
12 5
8
2
3
2
14 13
0
8
4
4
4 8
0
4
2
14 15
8
4
2
4
14 3
7
5
3
2
13 10
7
6
3
2
14 10
7
6
4
3
9 6
7
4
4
1
12 9
10
3
4
2
5 11
0
4
2
10 5
5
0
2
12 5
3
3
3
1
12 3
7
0
3
2
12 5
8
2
3
2
8 14
0
5
4
1
4 15
2
0
3
1
10 6
7
2
3
2
9 11
5
2
4
2
10 7
5...

output:

? 1 1 7 6
? 8 1 9 3
? 7 3 8 5
! 8 6
? 1 1 5 6
? 1 6 3 9
? 2 9 4 10
! 4 10
? 1 1 3 2
? 3 3 4 3
! 4 4
? 1 1 7 6
? 1 7 4 9
? 4 7 6 8
? 3 6 5 7
! 6 7
? 1 1 7 5
? 1 1 4 3
? 4 1 6 2
? 6 1 7 1
! 7 1
? 1 1 6 3
? 1 1 3 2
? 1 2 2 3
? 1 2 1 3
! 1 3
? 1 1 7 6
? 7 7 11 10
? 7 7 9 8
? 6 6 8 7
! 8 7
? 1 1 2 4
? 2 ...

result:

ok Good (50 test cases)

Test #9:

score: 0
Accepted
time: 2ms
memory: 3536kb

input:

50
9 10
5
0
4
1
8 7
0
2
2
4 12
7
4
2
7 10
5
2
0
14 10
11
4
4
0
3 7
5
0
2
8 15
8
5
2
2
3 14
7
2
3
2
15 3
9
5
3
1
14 3
7
5
2
1
5 12
3
4
3
2
4 11
7
0
3
1
10 4
0
3
1
10 12
6
6
3
2
11 6
3
4
4
1
14 7
7
4
2
1
4 12
2
2
3
2
5 12
0
2
3
1
8 11
9
4
4
1
5 5
4
2
5 8
6
3
1
12 8
4
2
4
1
3 4
3
2
11 10
10
4
2
1
3 4
3...

output:

? 1 1 5 6
? 6 1 7 3
? 7 3 8 5
? 7 4 8 4
! 8 5
? 1 1 5 4
? 5 5 7 6
? 6 6 6 7
! 6 7
? 1 1 2 6
? 2 4 3 6
? 1 4 2 5
! 2 6
? 1 1 4 5
? 1 6 2 8
? 2 5 3 7
! 4 8
? 1 1 7 5
? 1 1 4 3
? 4 1 6 2
? 3 2 5 3
! 6 1
? 1 1 2 4
? 2 3 3 5
? 1 1 2 1
! 1 1
? 1 1 4 8
? 1 9 2 12
? 2 8 3 10
? 1 9 2 9
! 1 9
? 1 1 2 7
? 2 11...

result:

ok Good (50 test cases)

Test #10:

score: 0
Accepted
time: 1ms
memory: 3616kb

input:

16
3 3
4
4
3
1
3 3
4
4
3
2
3 3
4
4
3
1
3 3
2
3
1
3 3
4
2
3
2
3 3
2
3
2
3 3
4
2
2
3 3
4
4
2
3 3
2
2
3 4
4
4
2
3 4
4
4
1
4 3
4
4
2
4 3
4
4
1
4 3
4
0
4 4
4
4
2
4 4
0
1

output:

? 1 1 3 2
? 1 2 3 3
? 1 1 2 2
? 1 1 1 2
! 2 2
? 1 1 3 2
? 1 2 3 3
? 1 1 2 2
? 1 1 1 2
! 1 2
? 1 1 3 2
? 1 2 3 3
? 1 1 2 2
? 1 1 1 2
! 2 2
? 1 1 3 2
? 1 2 2 3
? 1 2 1 3
! 2 3
? 1 1 3 2
? 1 2 3 3
? 1 1 2 2
? 1 1 1 2
! 1 1
? 1 1 3 2
? 1 2 2 3
? 1 2 1 3
! 1 3
? 1 1 3 2
? 1 2 3 3
? 1 1 2 2
! 3 1
? 1 1 3 ...

result:

ok Good (16 test cases)

Test #11:

score: 0
Accepted
time: 113ms
memory: 3540kb

input:

15000
12 8
6
3
0
12 15
8
4
4
0
3 9
0
2
1
11 10
10
0
2
2
3 14
2
5
3
2
11 9
10
3
4
2
14 4
7
0
3
1
8 5
0
2
1
11 10
5
0
4
1
8 9
4
4
2
1
5 12
3
0
2
13 9
11
6
0
2
7 13
4
4
2
1
12 12
7
0
4
1
15 9
12
0
2
1
12 12
6
0
4
4
9 10
6
4
4
2
9 15
8
3
4
2
12 14
12
0
3
1
5 4
0
4
2
15 9
5
2
2
2
14 7
7
5
4
1
8 15
4
0
2
...

output:

? 1 1 6 4
? 7 1 9 2
? 9 2 11 3
! 12 1
? 1 1 6 8
? 1 9 3 12
? 1 12 2 14
? 2 12 4 13
! 1 14
? 1 1 2 5
? 2 6 3 7
? 2 8 3 8
! 3 9
? 1 1 6 5
? 4 3 7 5
? 2 2 4 3
? 2 1 2 2
! 2 1
? 1 1 2 7
? 2 1 3 4
? 2 1 3 2
? 2 1 3 1
! 3 1
? 1 1 6 5
? 4 3 7 5
? 3 2 5 3
? 4 1 4 2
! 4 2
? 1 1 7 2
? 11 2 14 3
? 8 1 9 2
? 8 ...

result:

ok Good (15000 test cases)