Advertisement
mickypinata

USACO-T009: Dual Palindromes

Sep 20th, 2021
932
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. ID: mickyta1
  3. TASK: dualpal
  4. LANG: C++
  5. */
  6.  
  7. #include <bits/stdc++.h>
  8. using namespace std;
  9.  
  10. string baseNumber(int x, int base){
  11.     string ans = "";
  12.     while(x > 0){
  13.         int newDigit = x % base;
  14.         if(newDigit >= 10){
  15.             ans = (char)('A' + newDigit - 10) + ans;
  16.         } else {
  17.             ans = (char)('0' + newDigit) + ans;
  18.         }
  19.         x /= base;
  20.     }
  21.     return ans;
  22. }
  23.  
  24. bool isPalindrome(string str){
  25.     int len = str.size();
  26.     for(int i = 0; i < len / 2; ++i){
  27.         if(str[i] != str[len - i - 1]){
  28.             return false;
  29.         }
  30.     }
  31.     return true;
  32. }
  33.  
  34. int main(){
  35.  
  36.     freopen("dualpal.in", "r", stdin);
  37.     freopen("dualpal.out", "w", stdout);
  38.  
  39.     int st, limCnt;
  40.     scanf("%d%d", &limCnt, &st);
  41.     for(int i = st + 1; limCnt > 0; ++i){
  42.         int cnt = 0;
  43.         for(int b = 2; b <= 10; ++b){
  44.             if(isPalindrome(baseNumber(i, b))){
  45.                 ++cnt;
  46.                 if(cnt == 2){
  47.                     cout << i << '\n';
  48.                     --limCnt;
  49.                     break;
  50.                 }
  51.             }
  52.         }
  53.     }
  54.  
  55.     fclose(stdin);
  56.     fclose(stdout);
  57.  
  58.     return 0;
  59. }
  60.  
Advertisement
RAW Paste Data Copied
Advertisement