Advertisement
Ritam_C

Uri 1398

Jan 26th, 2021
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define ld long double
  4. #define pb push_back
  5. #define p_b pop_back
  6. #define si stack<int>
  7. #define sll stack<ll>
  8. #define sc stack<char>
  9. #define vi vector<int>
  10. #define vll vector<ll>
  11. #define mii map<int, int>
  12. #define msi map<string, int>
  13. #define mci map<char, int>
  14. #define qc queue<char>
  15. #define qi queue<int>
  16. #define qll queue<ll>
  17. using namespace std;
  18.  
  19. ll power(int n, int b){
  20.     int a = 1;
  21.     for(int i = 0; i < b; i++){
  22.         a *= n;
  23.     }
  24.  
  25.     return a;
  26. }
  27.  
  28. int main(){
  29.     ios_base::sync_with_stdio(false);
  30.     cin.tie(NULL);
  31.  
  32.     string s, t;
  33.     while(cin >> t){
  34.         if(t[t.length()-1] != '#'){
  35.             s += t;
  36.         } else{
  37.             s += t.substr(0, t.length()-1);
  38.             map<ll, int> m;
  39.             for(int i = 1; i <= power(2, 16); i *= 2){
  40.                 m.insert({i, 0});
  41.             }
  42.  
  43.             for(int i = 0; i < s.length(); i++){
  44.                 if(s[i] == '1'){
  45.                     m[power(2, (s.length()-i-1)%17)]++;
  46.                 }
  47.             }
  48.  
  49.             bool f = true;
  50.             for(int i = 1; i <= power(2, 15); i *= 2){
  51.                 if(m[i] != m[2*i]){
  52.                     f = false;
  53.                     break;
  54.                 }
  55.             }
  56.  
  57.             if(f){
  58.                 cout << "YES\n";
  59.             } else{
  60.                 cout << "NO\n";
  61.             }
  62.  
  63.             s = "";
  64.         }
  65.     }
  66.  
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement