求助,#4 WA,Impossible!没有拼错
查看原帖
求助,#4 WA,Impossible!没有拼错
352603
RainSpark楼主2022/6/22 10:46
#include<iostream>
#include<cstdio>
#include<cstring>
#define ull unsigned long long
#define ll long long
#define N 1005
using namespace std;
int n,ans;
int a[N],b[N];
string s;
int main(){
	cin>>n>>s;
	for(int i=s.size()-1;i>=0;i--){
		if(n==16 && s[i]>='A' && s[i]<='F'){
			a[s.size()-i]=s[i]-'A'+10;
		}else{
			a[s.size()-i]=s[i]-'0';
		}
	}
	int len=s.size(),mlen;
	for(ans=1;ans<=30;ans++){
		mlen=len;
		for(int i=1;i<=len;i++){
			b[i]+=a[i]+a[len-i+1];
			if(b[i]>=n){
				b[i]-=n;
				b[i+1]++;
				if(i==1){
					mlen++;
				}
			}
		}
		len=mlen;
		bool isnum=1;
		for(int i=1;i<=len;i++)
			if(b[i]!=b[len-i+1]){
				isnum=0;
				break;
			}
		if(isnum==1){
			cout<<"STEP="<<ans<<endl;
			return 0;
		}
		for(int i=1;i<=len;i++)
			a[i]=b[i];
		memset(b,0,sizeof b);
	}
	cout<<"Impossible!"<<endl;
	return 0;
}

2022/6/22 10:46
加载中...