Submission
Status:
--PP-P-PP-
Score: 50
User: amongus
Problemset: C.Sort Number
Language: cpp
Time: 0.042 second
Submitted On: 2024-10-15 17:22:40
#include <bits/stdc++.h>
using namespace std;
#define sz(x) (int)x.size()
typedef long long ll;
ll convert(char c) {
if (c >= 'A') {
return (int)(c - 'A') + 10;
}
return (int)(c - '0');
}
ll F(string s, int n) {
ll b10 = 0;
for (int i = 0; i < sz(s); i++) {
b10=b10*n;
b10 += convert(s[i]);
}
// cerr << b10 << "\n";
ll ans = 0;
set<ll> f;
for (ll i = 1; i * i <= b10; i++) {
if (b10 % i == 0) {
ans=ans+i+b10/i;
}
}
/*for (ll e : f) {
ans += e;
}*/
return ans;
}
int main() {
int T;
cin >> T;
vector<ll> v(T);
for (int i = 0; i < T; i++) {
int n;
string s;
cin >> n;
cin >> s;
v.push_back(F(s, n));
}
sort(v.rbegin(), v.rend());
for (int i = 0; i < T; i++) {
cout << v[i] << "\n";
}
return 0;
}