蒟蒻求助,样例过了,为什么还是0分
查看原帖
蒟蒻求助,样例过了,为什么还是0分
656765
STARSczy楼主2023/3/15 20:48

rt


#include<bits/stdc++.h>
using namespace std;

int a[1000],b[1000],len,k;
bool f(){
	for(int i=1;i<=len/2;++i) if(a[i]!=a[len-i]) return 0;
	return 1;
}

signed main(){
	scanf("%d\n",&k);
	for(;1;){
		char c=getchar();
		++len;
		if(c=='\n') break;
		else if(c>='0'&&c<='9') a[len]=c-'0';
		else a[len]=c-'A'+10;
	}
	for(int i=1;i<=len/2;++i) swap(a[i],a[len-i]);
	if(f()){
		printf("STEP=0");
		return 0;
	}
	for(int s=1;s<=30;++s){
		memset(b,0,500);
		for(int i=1;i<len;++i) b[i]=a[len-i];
		for(int i=1;i<len;++i){
			if(a[i]+b[i]>=k){
				if(i+1==len) ++len,a[i+1]=0;
				a[i+1]+=((a[i]+b[i])/k);
			}
			a[i]=(a[i]+b[i])%k;
		}
		if(f()){
			printf("STEP=%d",s);
			return 0;
		}
	}
	printf("Impossible!");
	return 0;
}
2023/3/15 20:48
加载中...