为什么,为什么25分(痛苦,扭曲爬行)(嘶吼)(四肢分裂)
查看原帖
为什么,为什么25分(痛苦,扭曲爬行)(嘶吼)(四肢分裂)
965137
emu_楼主2023/7/25 16:03
#include<bits/stdc++.h>
using namespace std;
long long n,a[10005],l,b[10005],ans;
string s;
void cuiz()
{
	int j=0;
	for(int i=0;i<l;i++)
	{
		if(s[i]>='0' && s[i]<= '9') 
			a[++j]=s[i]-'0';
		else 
			a[++j]=s[i]-'A'+10;
	}
}
bool pand()
{
	int le=l,i=1,j=l;
	while(le--)
	{
		if(le<l/2)
			break;
		if(a[i]!=a[j])
			return 1;
		i++;
		j--;
	}
	return 0;
}
void fanz()
{
	int j=0;
	for(int i=l;i>=1;i--)
		b[++j]=a[i];
		
}
void jia()
{
	for(int i=1;i<=l;i++)
	{
		a[i]+=b[i];
		a[i+1]+=a[i]/10;
		a[i]%=n;
	}
	if(a[l+1]>0) l++;
}
int main()
{
	 cin>>n>>s;
	 l=s.length();
	 cuiz();
	 while(pand())
	{
	 	fanz();
	 	jia();
	 	ans++;
	 	if(ans>30)
		{
	 		break;
		}
	} 
	if(ans<=30)
		cout<<"STEP="<<ans;
	else
		cout<<"Impossible!";
	return 0;
}
2023/7/25 16:03
加载中...