General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
188315244 Practice:
DaiRuiChen007
1543D2 - 35 C++14 (GCC 6-32) Accepted 1762 ms 4 KB 2023-01-07 14:46:25 2023-01-07 14:46:25
→ Source
// LUOGU_RID: 98959655
#include<bits/stdc++.h>
using namespace std;
const int MAXN=2e5+1;
int n,k;
struct node {
	int a[20];
	node(int x) {
		for(int i=0;i<20;++i) a[i]=0;
		int len=0;
		while(x) {
			a[len]=x%k;
			x/=k,++len;
		}
	}
	node() { node(0); }
	inline int& operator [](int i) { return a[i]; }
	inline friend node operator +(node A,node B) {
		node C;
		for(int i=0;i<20;++i) C[i]=(A[i]+B[i])%k;
		return C;
	}
	inline friend node operator -(node A,node B) {
		node C;
		for(int i=0;i<20;++i) C[i]=(A[i]+k-B[i])%k;
		return C;
	}
	inline int val() {
		int x=0;
		for(int i=0,p=1;i<20;++i,p*=k) {
			if(p>=MAXN) break;
			x+=a[i]*p;
		}
		return x;
	}
};
inline bool read(int x) {
	cout<<x<<endl;
	int ret; cin>>ret; return ret;
}
inline void solve() {
	cin>>n>>k;
	node sum(0);
	for(int i=0;i<n;++i) {
		node q=(i%2==0)?(sum+node(i)):(sum-node(i));
		if(read(q.val())) return ;
		sum=q-sum;
	}
}
signed main() {
	int T;
	cin>>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