测试点下了对一下好像是对的为啥全WA
查看原帖
测试点下了对一下好像是对的为啥全WA
972995
luhaoyan1115楼主2024/10/20 17:15
#include<bits/stdc++.h>
using namespace std;
int n,cnt[99999]={0};
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		int v[99999]={0},num[6];
		scanf("%d %d %d %d %d",&num[4],&num[3],&num[2],&num[1],&num[0]);
		for(int i=0;i<=4;i++)
		{
			int a=num[i];
			for(int j=0;j<=9;j++) 
			{
				num[i]=j;
				if(num[i]!=a&&!v[num[4]*10000+num[3]*1000+num[2]*100+num[1]*10+num[0]*1])
				{
					cnt[num[4]*10000+num[3]*1000+num[2]*100+num[1]*10+num[0]*1]++;
					v[num[4]*10000+num[3]*1000+num[2]*100+num[1]*10+num[0]*1]=1;
				} 
			}
			num[i]=a;
		}
		for(int i=0;i<=3;i++)
		{
			int a=num[i],b=num[i+1];
			for(int k=1;k<=9;k++)
			{
				num[i]=(a+k)%10;
				num[i+1]=(b+k)%10;
				if(!v[num[4]*10000+num[3]*1000+num[2]*100+num[1]*10+num[0]*1])
				{
					cnt[num[4]*10000+num[3]*1000+num[2]*100+num[1]*10+num[0]*1]++;
					v[num[4]*10000+num[3]*1000+num[2]*100+num[1]*10+num[0]*1]=1;
				}
			}
			num[i]=a,num[i+1]=b;
		}
	}
	long long ans=0;
	for(int i=0;i<=99999;i++) if(cnt[i]==n) ans++;
	printf("%lld\n",ans);
	return 0;
}
2024/10/20 17:15
加载中...