题解

linyanghaobylz  •  8个月前


include<bits/stdc++.h>

using namespace std;

int n,ans; string str; vector s1,s2;

int main() {

cin>>n;
cin>>str;
for(int i=0;i<str.length();i++)	
{
	if(str[i]>='0'&&str[i]<='9')
		s1.push_back(str[i]-'0');
	else
		if(str[i]>='A')			
			s1.push_back(str[i]-'A'+10);
		else
			s1.push_back(str[i]-'a'+10);
}
s2=s1;
reverse(s1.begin(),s1.end());	
if(s1==s2)
{
	cout<<"STEP=0";
	return 0;
}
while(++ans<=30)	
{
	int len=s1.size();
	for(int i=0;i<len;i++)	
	{
		s1[i]+=s2[i];
		if(s1[i]>=n)	
		{
			if(i!=len-1) s1[i+1]++;
			else s1.push_back(1);	
		}
		s1[i]%=n;	
	}
	s2=s1;
	reverse(s1.begin(),s1.end());
	if(s1==s2)
	{
		cout<<ans;
		return 0;
	}
}
cout<<"Impossible!";
return 0;

}


评论: