样例过了,但AC不了
#include <bits/stdc++.h>
using namespace std;
using LL = int64_t;
int n;
char ch[0x7ff];
int main()
{
cin >> n;
cin >> ch;
int len=strlen(ch);
int x[0xfff], y[0xfff];
for(int j=1;j<=len;j++) {
if(n==16) {
x[j]=ch[len-j]-'A'+10;
y[j]=ch[j-1]-'A'+10;
}
else x[j]=ch[len-j]-'0', y[j]=ch[j-1]-'0';
}
for(int i=1;i<=30;i++) {
int a[0x7fff];
memset(a,0,sizeof(a));
int k=1;
for(;k<=len;k++) {
a[k]+=(x[k]+y[k])%n;
a[k+1]=(x[k]+y[k])/n;
}
if(a[k]) len++;
bool flag=0;
for(int j=1;j<=len/2;j++) {
if(a[j]!=a[len-j+1]) {
flag=1;
break;
}
}
if(flag==0) {
cout<<"STEP="<<i<<'\n';
return 0;
}
for(int j=1;j<=len;j++) {
x[j]=a[j];
y[j]=a[len-j+1];
}
}
cout << "Impossible!\n";
return 0;
}