... • 1年前
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;
}
评论: