1 条题解

  • 0
    @ 2025-8-3 18:46:07
    
    #include<bits/stdc++.h>
    using namespace std;
    #define int unsigned long long
    int n,ans;
    string m,s;
    bool asn(){
    	string s1=s;
    	reverse(s.begin(),s.end());
    	if (s1!=s){
    		return false;
    	}
    	return true;
    }
    signed main(){
    	cin>>n>>m;
    	for(int i=0;i<m.size();i++){
    		if (m[i]>='A'&&m[i]<='Z'){
    			m[i]='9'+m[i]-'A'+1;
    		}
    	}
    	s=m;
    	while(!asn()){
    		string s1=s;
    		reverse(s.begin(),s.end());
    		string s2;
    		int r=0;
    		for(int i=0;i<s.size();i++){
    			int x=s[i]-'0';
    			int y=s1[i]-'0';
    			char z=(x+y+r)%n+'0';
    			r=(x+y+r)/n;
    			s2=z+s2;
    		}
    		if (r){
    			char x=r+'0';
    			s2=x+s2;
    		}
    		s=s2;
    		ans++;
    		if (ans>30){
    		    cout<<"Impossible!";
    		    return 0;
    		}
    	}
    	cout<<"STEP="<<ans;
    	return 0;
    }
    
    

    信息

    ID
    639
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    6
    已通过
    4
    上传者