fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <cmath>
  5. #include <map>
  6. using namespace std ;
  7. #define ll long long
  8. long long arr[105] ;
  9.  
  10. int N = 0 ;
  11. bool solve ( ll w1 , ll w2, int pos ){
  12. if( pos ==N) return w1 == w2 ;
  13. if( w1 == w2) return true;
  14. return solve(w1+arr[pos],w2,pos+1) || solve(w1,w2+arr[pos],pos+1) || solve(w1,w2,pos+1) ;
  15. }
  16. int main (){
  17. int w ;
  18. ll m ;
  19. cin >> w >> m ;
  20.  
  21. for ( int i = 0 ; i < 100; i++){
  22. ll tt = pow(w,i);
  23. if( tt > 1e9) break ;
  24. N=i;
  25. arr[i]=tt ;
  26. }
  27. if(w==2||solve(0LL,m,0)){
  28. cout << "YES";
  29. }else{
  30. cout<< "NO";
  31. }
  32. return 0;
  33. }
Success #stdin #stdout 0s 3100KB
stdin
5 781
stdout
YES