silentkiler029

atCoder-Hachi- by Shanto

Nov 1st, 2020
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. /*    BISMILLAHIR-RAHMANIR-RAHIM
  2.  ____________________________________
  3. |                                    |
  4. |      SHANTO_SUST_SWE-19__029       |
  5. |      shanto-swe029.github.io       |
  6. |____________________________________|
  7. */
  8.  
  9. #include <bits/stdc++.h>
  10. using namespace std;
  11.  
  12. #define ll          long long
  13. #define fastio      ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
  14. #define pb          push_back
  15. #define Pi          acos(-1.0)
  16. #define r0          return 0
  17. #define endl        "\n"
  18. #define show(x)     cout << x << endl
  19. #define take(x)     cin >> x
  20. #define debug       1
  21.  
  22. int main()
  23. {
  24.     string s;
  25.     std::cin >> s;
  26.     int sz = s.size();
  27.  
  28.     if( sz == 1 ) {
  29.         if( s == "8" ) std::cout << "Yes";
  30.         else std::cout << "No";
  31.         return 0;
  32.     }
  33.  
  34.     if( sz == 2 ) {
  35.         int d1 = s[0] - '0';
  36.         int d2 = s[1] - '0';
  37.         int n1 = d1 * 10 + d2;
  38.         int n2 = d2 * 10 + d1;
  39.         if( ( n1 % 8 == 0 ) || ( n2 % 8 == 0 ) ) {
  40.             std::cout << "Yes";
  41.             return 0;
  42.         }
  43.         else {
  44.             std::cout << "No";
  45.             return 0;
  46.         }
  47.     }
  48.  
  49.     int counter[10] = {0};
  50.  
  51.     for( int i = 0; i < sz; i++ ) {
  52.         int x = ( int ) ( s[i] - '0' );
  53.         counter[x]++;
  54.     }
  55.  
  56.     std::vector < int > v;
  57.  
  58.     for( int i = 0; i < 10; i++ ) {
  59.         if( counter[i] > 0 ) v.push_back(i);
  60.         if( counter[i] > 1 ) v.push_back(i);
  61.         if( counter[i] > 2 ) v.push_back(i);
  62.     }
  63.  
  64.     bool gotcha = false;
  65.     for( int i = 0; i < v.size(); i++ ) {
  66.         for( int j = i + 1; j < v.size(); j++ ) {
  67.             for( int k = j + 1; k < v.size(); k++ ) {
  68.                 int d1 = v[i];
  69.                 int d2 = v[j];
  70.                 int d3 = v[k];
  71.  
  72.                 int n1 = d1 * 100 + d2 * 10 + d3;
  73.                 int n2 = d1 * 100 + d3 * 10 + d2;
  74.                 int n3 = d2 * 100 + d1 * 10 + d3;
  75.                 int n4 = d2 * 100 + d3 * 10 + d1;
  76.                 int n5 = d3 * 100 + d1 * 10 + d2;
  77.                 int n6 = d3 * 100 + d2 * 10 + d1;
  78.  
  79.                 bool pass = ( n1 % 8 == 0 ) || ( n2 % 8 == 0 ) || ( n3 % 8 == 0 )
  80.                             || ( n4 % 8 == 0 ) || ( n5 % 8 == 0 ) || ( n6 % 8 == 0 );
  81.  
  82.                 if( pass ) {
  83.                     gotcha = true;
  84.                     break;
  85.                 }
  86.             }
  87.             if( gotcha ) break;
  88.         }
  89.         if( gotcha ) break;
  90.     }
  91.  
  92.     if( gotcha ) cout << "Yes";
  93.     else cout << "No";
  94.  
  95.     return 0;
  96. }
  97.  
  98. //ALHAMDULILLAH
  99.  
Advertisement
Add Comment
Please, Sign In to add comment