Cod sursa(job #3041686)

Utilizator Zed1YasuoAlex Birsan Zed1Yasuo Data 1 aprilie 2023 09:26:58
Problema PScPld Scor 0
Compilator cpp-64 Status done
Runda tot_ Marime 0.71 kb
#include <fstream>

using namespace std;
ifstream f("pscpld.in");
ofstream g("pscpld.out");
int n,m;
const int N=1e5+5;
string s;
int a[2*N];
int len,k;
char c;
int main()
{
    s[0]='*';
    while(f>>c)
    {
        s[++k]=c;
        s[++k]='*';
    }
    int st=0,dr=0;
    int n=k+1;
    for(int i=1;i<n;i++)
    {
        if(i<=dr)
            len=min(dr-i+1,a[st+dr-i]);
        else
            len=1;
        while(s[i-len]==s[i+len]&&i-len>=0&&i+len<n)
            len++;
        a[i]=len;
        if(len+i-1>dr)
        {
            dr=i+len-1;
            st=i-len+1;
        }
    }
    long long s=0;
    for(int i=1;i<n;i++)
        s=s+a[i]/2;
    g<<s;
    return 0;
}