#include #include #include #include using namespace std; int main(){ int S, E; cin >> S >> E; vector palindromes; for(int i = 1; i <= 100000; i++) { int tmp = i; int reverse_number = 0; while(tmp > 0) { int cifra = tmp % 10; reverse_number = (reverse_number * 10) + cifra; tmp /= 10; } if(reverse_number == i) { palindromes.push_back(i); } } queue q; q.push(S); q.push(0); vector visited(100000, false); while(!q.empty()) { int c_number = q.front(); q.pop(); int cnt = q.front(); q.pop(); if(c_number == E) { cout << cnt << endl; break; } for(int i = 0; i < palindromes.size(); i++) { if(palindromes[i] < c_number and c_number + palindromes[i] <= E and !visited[c_number + palindromes[i]]) { q.push(c_number + palindromes[i]); q.push(cnt + 1); visited[c_number + palindromes[i]] = true; } } } return 0; }