为何,若分而答之,两样例皆可过也,可若合而为一,成
2 10
1 3
4 5
则无以得AC。
#include<iostream>
using namespace std;
int t,p,x,y;
string a[10000];
bool k[20001];
string f(int x,int y,int xy) {
if(x==0)return "1";
if(y==0)return "2";
if(k[x+y])return "error";
k[x+y]=1;
if(xy==1) {
if(a[(x+y)%p]!="")return a[(x+y)%p];
else {
a[(x+y)%p]=f((x+y)%p,y,0);
return a[(x+y)%p];
}
}
if(xy==0) {
if(a[(x+y)%p]!="")return a[(x+y)%p];
else {
a[(x+y)%p]=f(x,(x+y)%p,1);
return a[(x+y)%p];
}
}
}
int main() {
cin>>t>>p;
for(int i=1;i<=t;i++) {
cin>>x>>y;
for(int i=1;i<=20000;i++)k[i]=0;
cout<<f(x,y,1)<<endl;
}
return 0;
}