Submission
Status:
PPPPPPPPPP
Score: 100
User: Dormon
Problemset: C.Sort Number
Language: cpp
Time: 0.057 second
Submitted On: 2024-12-03 10:42:10
#include <iostream>
#include <unordered_map>
#include <queue>
using namespace std;
using ll = long long;
unordered_map<char, int> ump = {{'0', 0}, {'1', 1}, {'2', 2}, {'3', 3}, {'4', 4}, {'5', 5}, {'6', 6}, {'7', 7}, {'8', 8}, {'9', 9},
{'A', 10}, {'B', 11}, {'C', 12}, {'D', 13}, {'E', 14}, {'F', 15}};
priority_queue<ll> pq;
void solve(){
int b; scanf("%d", &b);
string s; cin >> s;
int n = s.size();
ll sum = 0, base = 1;
for (int i = n-1;i >= 0;i--){
sum += ump[s[i]]*base;
base *= b;
}
ll ans = 0ll;
for (int i = 1;i*i <= sum;i++){
if (sum%i == 0){
ans += i+0ll, ans += sum/i+0ll;
if (i*i == sum) ans -= i+0ll;
}
}
pq.push(ans);
}
int main()
{
int q; scanf("%d", &q);
while (q--){
solve();
}
while (!pq.empty()){
printf("%lld\n", pq.top());
pq.pop();
}
}