Advertisement
tepyotin2

Untitled

Oct 8th, 2023
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. long long ans = 0;
  6.  
  7. void solve(string s){
  8.     int n = s.size();
  9.     // cout << s << '\n';
  10.     ans++;
  11.     if(n == 1 || n%2 == 0){
  12.         return;
  13.     }
  14.     // cout << "#1, " << s.substr(0,1) << " vs " << s.substr(1,1) << '\n';
  15.     // cout << "#2, " << s.substr(0,1) << " vs " << s.substr(n-1,1) << '\n';
  16.     // cout << "#3, " << s.substr(n-1,1) << " vs " << s.substr(0,1) << '\n';
  17.     // cout << "#4, " << s.substr(n-1,1) << " vs " << s.substr(n-2,1) << '\n';
  18.  
  19.     // cout << "#1, " << s.substr(0,2) << " vs " << s.substr(0,2) << '\n';
  20.     // cout << "#2, " << s.substr(0,2) << " vs " << s.substr(n-2,2) << '\n';
  21.     // cout << "#3, " << s.substr(n-2,2) << " vs " << s.substr(0,2) << '\n';
  22.     // cout << "#4, " << s.substr(n-2,2) << " vs " << s.substr(n-2,2) << '\n';
  23.  
  24.     for(int i=1; i*2<n; i++){
  25.         if(s.substr(0,i) == s.substr(i,i)){
  26.             // cout << "#1, " << s.substr(0,i) << " vs " << s.substr(i,i) << ", remain: " << s.substr(i, n-i) << '\n';
  27.             solve(s.substr(i, n-i));
  28.         }
  29.         if(s.substr(0,i) == s.substr(n-i,i)){
  30.             // cout << "#2, " << s.substr(0,i) << " vs " << s.substr(n-i,i) << ", remain: " << s.substr(i, n-i) << '\n';
  31.             solve(s.substr(i, n-i));
  32.         }
  33.         if(s.substr(n-i,i) == s.substr(0,i)){
  34.             // cout << "#3, " << s.substr(n-i,i) << " vs " << s.substr(0,i) << ", remain: " << s.substr(0, n-i) << '\n';
  35.             solve(s.substr(0, n-i));
  36.         }
  37.         if(s.substr(n-i,i) == s.substr(n-i-i,i)){
  38.             // cout << "#4, " << s.substr(n-i,i) << " vs " << s.substr(n-i-i,i) << ", remain: " << s.substr(0, n-i) << '\n';
  39.             solve(s.substr(0, n-i));
  40.         }
  41.     }
  42. }
  43.  
  44. int main(){
  45.     //freopen("scode.in", "r", stdin);
  46.     freopen("scode_silver/1.in", "r", stdin);
  47.     //freopen("scode.out", "w", stdout);
  48.     string s;
  49.     cin >> s;
  50.     // cout << "s: " << s << '\n';
  51.     solve(s);
  52.     ans = ans-1;
  53.     cout << ans%2014 << '\n';
  54. }
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement