QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#152449#6621. Luggage LockLFCode#RE 0ms0kbC++141.3kb2023-08-28 09:03:302023-08-28 09:03:31

Judging History

你现在查看的是最新测评结果

  • [2023-08-28 09:03:31]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:0kb
  • [2023-08-28 09:03:30]
  • 提交

answer

#include<cstdio>
const int N=5;
int T[N],S[N],s[N],dd[N],d[10086],q[10086];
bool vis[10086];
int read(){
	char ch=getchar();int nn=0,ssss=1;
	while(ch<'0'||ch>'9'){if(ch=='-')ssss*=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){nn=nn*10+(ch-'0');ch=getchar();}
	return nn*ssss;
}
int gd(){char ch=getchar();while(ch<'0'||ch>'9')ch=getchar();return ch-'0';}
bool solve(){
	for(int i=1;i<=4;i++)S[i]=gd();
	for(int i=1;i<=4;i++){
		T[i]=gd();
		dd[i]=T[i]-S[i];
		if(dd[i]<0)dd[i]+=10;
	}
	int delta=dd[1]*1000+dd[2]*100+dd[3]*10+dd[4];
	printf("%d\n",d[delta]);
}
bool bfs(){
	vis[0]=true;int qh=1,qt=0;q[++qt]=0;
	while(qh<=qt){
		int np=q[qh++];int tmp=np;
		for(int i=1;i<=4;i++){s[i]=np%10;np/=10;}
		for(int l=1;l<=4;l++)
			for(int r=l;r<=4;r++){
				for(int k=l;k<=r;k++){
					s[k]++;
					if(s[k]==10)s[k]=0;
				}
				int rp=s[1]+s[2]*10+s[3]*100+s[4]*1000;
				if(!vis[rp]){vis[rp]=true;d[rp]=d[tmp]+1;q[++qt]=rp;}
				for(int k=l;k<=r;k++){
					s[k]-=2;
					if(s[k]<0)s[k]+=10;
				}
				rp=s[1]+s[2]*10+s[3]*100+s[4]*1000;
				if(!vis[rp]){vis[rp]=true;d[rp]=d[tmp]+1;q[++qt]=rp;}
				for(int k=l;k<=r;k++){
					s[k]++;
					if(s[k]==10)s[k]=0;
				}
			}
	}
	return true;
}
int main(){
	bfs();
	int T=read();
	while(T--)solve();
}

詳細信息

Test #1:

score: 0
Runtime Error

input:

6
1234 2345
1234 0123
1234 2267
1234 3401
1234 1344
1234 2468

output:


result: