akashtadwai

Untitled

Oct 9th, 2019
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.57 KB | None | 0 0
  1. vector<int> a;
  2. int val(char c) {
  3.   if (c >= '0' && c <= '9')
  4.     return (int)c - '0';
  5.   else
  6.     return (int)c - 'A' + 10;
  7. }
  8. void init() {
  9.   int T;
  10.   cin >> T;
  11.   while (T--) {
  12.     int N, B, ans = -1;
  13.     cin >> N;
  14.     string s;
  15.     for (int i = 1; i <= N; i++) {
  16.       cin >> B >> s;
  17.       if (B != -1) {
  18.         int len = s.size();
  19.         int power = 1;
  20.         int num = 0;
  21.         int i;
  22.         for (i = len - 1; i >= 0; i--) {
  23.           num += val(s[i]) * power;
  24.           power = power * B;
  25.           if (num > 1e12)
  26.             break;
  27.         }
  28.         if(i==-1) ans = num;
  29.       } else {
  30.         int maxi = -1;
  31.         for (int i = s.size() - 1; i >= 0; i--)
  32.           maxi = max(val(s[i]), maxi);
  33.          if (s.size() == 1)
  34.          a.pb(val(s[s.size() - 1]));
  35.         for (int j = maxi + 1; j <= 36; j++) {
  36.           int len = s.size();
  37.           int power = 1;
  38.           int num = 0;
  39.           int i;
  40.  
  41.           for (i = len - 1; i >= 0; i--) {
  42.             num += val(s[i]) * power;
  43.             power = power * j;
  44.             if (num > 1e12)
  45.               break;
  46.           }
  47.           if(i==-1) a.pb(num);
  48.         }
  49.       }
  50.     }
  51.     if (ans != -1)
  52.       cout << ans << endl;
  53.     else {
  54.       int flag = 0, num;
  55.       for (int i = 0; i < a.size(); i++) {
  56.         int cnt = count(a.begin(), a.end(), a[i]);
  57.         if (cnt == N) {
  58.           num = a[i];
  59.           flag = 1;
  60.           break;
  61.         }
  62.       }
  63.       if (flag == 1)
  64.         cout << num << endl;
  65.       else
  66.         cout << -1 << endl;
  67.       a.clear();
  68.     }
  69.   }
  70. }
Add Comment
Please, Sign In to add comment