哪里错了?
查看原帖
哪里错了?
228788
ChangYiMing楼主2020/11/3 21:31
#include <stdio.h>
#include <map>
#include <string>
#define ll long long
using namespace std;

int read(){
	int a1=0,k1=1;char c1=getchar();
	while(c1<'0'||c1>'9'){
		if(c1=='-')k1=-1;c1=getchar();
	}
	while(c1>='0'&&c1<='9'){
		a1=a1*10+c1-'0';
		c1=getchar();
	}
	return a1*k1;
}
inline void out1(ll n) {
	if(n < 0)
		putchar ('-') , n = -n;
	if(n > 9)
		out1(n / 10);
	putchar(n % 10 + '0');
}
inline void out(ll n){
	out1(n);printf("\n");
}
int n,m;
map<string,bool>mp;
int/*signed*/ main(){
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	int t=read(),i,Mod=read();
	while(t--){
		n=read();m=read();i=0;
		while(++i){
			if(n==0&&m!=0){
				printf("1\n");break;
			}
			if(n!=0&&m==0){
				printf("2\n");break;
			}
			string a=""+n,b=""+m;
			if(mp[a+b]){
				printf("error\n");break;
			}
			else {
				mp[a+b]=true;
			}
			if(i&1){
				n=(n+m)%Mod;
			}
			else {
				m=(n+m)%Mod;
			}
//			printf("%d %d\n",n,m);
		}
	}
	return 0;
}



2020/11/3 21:31
加载中...