General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
187510847 Practice:
DaiRuiChen007
1665D - 37 C++14 (GCC 6-32) Accepted 374 ms 168 KB 2023-01-01 13:16:33 2023-01-01 13:16:33
→ Source
// LUOGU_RID: 98442718
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int p[8]={3,7,11,13,17,19,23,29},MOD=646969323,LIM=1e9;
int unit[8];
inline int read(int a,int b) {
	cout<<"? "<<a<<" "<<b<<endl;
	int ret; cin>>ret; return ret;
}
inline int crt(const vector <int> &r) {
	int ret=0;
	for(int i=0;i<8;++i) ret=(ret+unit[i]*r[i])%MOD;
	return ret;
}
inline void solve() {
	vector <int> r[8];
	for(int i=0;i<8;++i) for(int j=0;j<p[i];++j) r[i].push_back(j);
	for(int t=0;t<29;++t) {
		vector <int> tmp(8);
		for(int i=0;i<8;++i) tmp[i]=(p[i]-r[i].back())%p[i];
		int q=crt(tmp);
		if(!q) q+=MOD;
		int x=read(q,q+MOD);
		for(int i=0;i<8;++i) if(x%p[i]!=0) r[i].pop_back();	
	}
	vector <int> ans(8);
	for(int i=0;i<8;++i) ans[i]=r[i].back();
	int d=crt(ans);
	int q=read((5-d%5)%5+5,(5-d%5)%5+10);
	if(q==1) cout<<"! "<<d+MOD<<endl;
	else cout<<"! "<<d<<endl;
}
signed main() {
	for(int i=0;i<8;++i) {
		int m=MOD/p[i];
		for(int r=0;r<p[i];++r) {
			if(m*r%p[i]==1) {
				unit[i]=m*r;
				break;
			}
		}
	}
	int T;
	scanf("%lld",&T);
	while(T--) solve();
	return 0;
}
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details