求助 25分 测试数据本地答案一样
查看原帖
求助 25分 测试数据本地答案一样
65306
ping140楼主2020/7/1 20:16
#include <cstdio>
#include <iostream>
using namespace std;
int p[1010],p1[1010];
int main()
{
	char p2;
	int n,num=0,ans,t=10,i=1,j=1,aans=0,d=0,q=0;
	scanf("%d",&n);
	while(~scanf("%c",&p2))
	{
		if(p2=='\n'&&q!=0) break;
		if(p2=='\n') 
		{
			q=1;
			continue;
		}
		if(p2>58) num+=p2-65+10;
		else num+=p2-48;  
		p1[j]=num;
		j++;
		num=0;
	}
	j--;
	for(;j>=1;j--)
	{
		p[i]=p1[j];
		i++;
	}
	i--;
	while(1)
	{
		j=i;
		for(int k=1;k<=i;k++)
		{
			if(p[k]!=p[j]) break;
			j--;
		}
		if(j==0)
		{
			printf("STEP=%d",aans);
			return 0;
		}
		for(int k=1;k<=i;k++)
		{
			p1[k]=p[k]+p[i+1-k]+d;
			d=0;
			while(p1[k]>=n)
			{
				p1[k]=p1[k]-n;
				d++;
			}
		}
		for(int k=1;k<=i;k++)
		{
			p[k]=p1[k];
		}
		while(d)
		{
			i++;
			p[i]=d;
			d=0;
			while(p[i]>=n)
			{
				p[i]=p[i]-n;
				d++;
			}
		}
		aans++;
		if(aans>30)
		{
			printf("Impossible!");
			return 0;
		}
	}	
}
2020/7/1 20:16
加载中...