Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- long long ans = 0;
- void solve(string s){
- int n = s.size();
- // cout << s << '\n';
- ans++;
- if(n == 1 || n%2 == 0){
- return;
- }
- // cout << "#1, " << s.substr(0,1) << " vs " << s.substr(1,1) << '\n';
- // cout << "#2, " << s.substr(0,1) << " vs " << s.substr(n-1,1) << '\n';
- // cout << "#3, " << s.substr(n-1,1) << " vs " << s.substr(0,1) << '\n';
- // cout << "#4, " << s.substr(n-1,1) << " vs " << s.substr(n-2,1) << '\n';
- // cout << "#1, " << s.substr(0,2) << " vs " << s.substr(0,2) << '\n';
- // cout << "#2, " << s.substr(0,2) << " vs " << s.substr(n-2,2) << '\n';
- // cout << "#3, " << s.substr(n-2,2) << " vs " << s.substr(0,2) << '\n';
- // cout << "#4, " << s.substr(n-2,2) << " vs " << s.substr(n-2,2) << '\n';
- for(int i=1; i*2<n; i++){
- if(s.substr(0,i) == s.substr(i,i)){
- // cout << "#1, " << s.substr(0,i) << " vs " << s.substr(i,i) << ", remain: " << s.substr(i, n-i) << '\n';
- solve(s.substr(i, n-i));
- }
- if(s.substr(0,i) == s.substr(n-i,i)){
- // cout << "#2, " << s.substr(0,i) << " vs " << s.substr(n-i,i) << ", remain: " << s.substr(i, n-i) << '\n';
- solve(s.substr(i, n-i));
- }
- if(s.substr(n-i,i) == s.substr(0,i)){
- // cout << "#3, " << s.substr(n-i,i) << " vs " << s.substr(0,i) << ", remain: " << s.substr(0, n-i) << '\n';
- solve(s.substr(0, n-i));
- }
- if(s.substr(n-i,i) == s.substr(n-i-i,i)){
- // cout << "#4, " << s.substr(n-i,i) << " vs " << s.substr(n-i-i,i) << ", remain: " << s.substr(0, n-i) << '\n';
- solve(s.substr(0, n-i));
- }
- }
- }
- int main(){
- //freopen("scode.in", "r", stdin);
- freopen("scode_silver/1.in", "r", stdin);
- //freopen("scode.out", "w", stdout);
- string s;
- cin >> s;
- // cout << "s: " << s << '\n';
- solve(s);
- ans = ans-1;
- cout << ans%2014 << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement