Iamtui1010

xoaso.cpp

Jan 12th, 2022
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<vector>
  4.  
  5. #define long long long
  6. #define nln '\n'
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.     cin.tie(0)->sync_with_stdio(0);
  13.     cout.tie(0)->sync_with_stdio(0);
  14.     // Input
  15.     //freopen("xoaso.inp", "r", stdin);
  16.     string str;
  17.     getline(cin, str, nln);
  18.     long n = str.size();
  19.     // Process
  20.     str = '$'+str;
  21.     vector<long> sum(n+2, 0), prev_sum(n+2, 0);
  22.     for (long i = 1; i <= n; ++i)
  23.         sum[i] = sum[i-1]+(str[i]-'0');
  24.     for (long i = n; i >= 1; --i)
  25.         prev_sum[i] = prev_sum[i+1] + (str[i]-'0');
  26.  
  27.     vector<long> rem(3, 0);
  28.     long ans = 0;
  29.     for (long i = 1; i <= n; ++i)
  30.     {
  31.         if (i > 1 && sum[i-1] % 3 == 0)
  32.             ++ans;
  33.  
  34.         if (prev_sum[i] % 3 == 0)
  35.             ans += rem[0]+1;
  36.         else
  37.             ans += rem[3-prev_sum[i]%3];
  38.  
  39.         if (i > 1)
  40.             ++rem[sum[i-1]%3];
  41.     }
  42.     cout << ans << nln;
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment