50pts,求调
查看原帖
50pts,求调
1024680
xpg007楼主2024/5/3 16:48
#include <bits/stdc++.h>
using namespace std;
vector<int> a;
vector<int> b;
int main() {
	int n;
	string s;
    cin >> n >> s;
    for (int i = 0; i < s.size(); i++){
        if (s[i] >= '0' && s[i] <= '9')
			a.push_back(s[i] - '0');
        else
			a.push_back(s[i] - 'A' + 10);
    }
    b = a;
    reverse(a.begin(), a.end());
    if (a == b){
		cout << "STEP=0";
		return 0;
	}
    for (int i = 1; i <= 30; i++) {
        for (int j = 0; j < a.size(); j++) {
            a[j] += b[j];
            if (j != a.size() - 1)
				a[j + 1] += a[j] / n;
            else if (a[j] >= n)
				a.push_back(a[j] / n);
            a[j] %= n;
        }
        b = a;
        reverse(b.begin(), b.end());
        if (a == b){
        	cout << "STEP=" << i;
        	return 0;
		}
    }
    cout << "Impossible!";
    return 0;
}
2024/5/3 16:48
加载中...