Cod sursa(job #2977265)

Utilizator ciacliboiiiciacli stefan ciacliboiii Data 11 februarie 2023 10:20:59
Problema PScPld Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;
string s;
int ans[1000001], st, dr, mij, sum;
ifstream fin("pscpld.in");
ofstream fout("pscpld.out");
int main()
{
    fin >> s;
    sum += s.size();
    st = -1;
    dr = -1;
    for(int i = 1; i < s.size(); ++ i)
    {
         if(i >= dr)
         {
            st = i - 1;
            dr = i + 1;
            while(st >= 0 && dr < s.size() && s[st] == s[dr])
            {
                st --;
                dr++;
                ans[i] ++;
            }
         }
         else
         {
             mij = (st + dr) / 2;
             ans[i] = ans[i - mij];
         }
    }
    for(int i = 0; i < s.size(); ++ i)
        sum += ans[i];
    fout << sum;
    return 0;
}