Advertisement
Josif_tepe

Untitled

Jan 30th, 2022
980
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <queue>
  4. #include <fstream>
  5. #include <array>
  6. using namespace std;
  7.  
  8.  
  9. int main()
  10. {
  11.     vector<int> palindromes;
  12.     for(int i = 1; i <= 99999; i++) {
  13.         vector<int> v;
  14.         int n = i;
  15.         while(n > 0) {
  16.             int digit = n % 10;
  17.             v.push_back(digit);
  18.             n /= 10;
  19.         }
  20.         int l = 0, r = (int) v.size() - 1;
  21.         bool ok = true;
  22.         while(l < r) {
  23.             if(v[l] == v[r]) {
  24.                 l++;
  25.                 r--;
  26.             }
  27.             else {
  28.                 ok = false;
  29.                 break;
  30.             }
  31.         }
  32.         if(ok) {
  33.             palindromes.push_back(i);
  34.         }
  35.     }
  36.    
  37.     int S, E;
  38.     cin >> S >> E;
  39.    
  40.     queue<int> Q;
  41.     Q.push(S);
  42.     Q.push(0);
  43.    
  44.     vector<bool> visited(100000, false);
  45.     while(!Q.empty()) {
  46.         int number = Q.front();
  47.         Q.pop();
  48.         int cekor = Q.front();
  49.         Q.pop();
  50.        
  51.         if(number == E) {
  52.             cout << cekor << endl;
  53.             return 0;
  54.         }
  55.        
  56.         for(int i = 0; i < palindromes.size(); i++) {
  57.             if(palindromes[i] < number and palindromes[i] + number <= E and !visited[palindromes[i] + number]) {
  58.                 Q.push(palindromes[i] + number);
  59.                 Q.push(cekor + 1);
  60.                 visited[palindromes[i] + number] = true;
  61.             }
  62.         }
  63.     }
  64.    
  65.     return 0;
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement