Cod sursa(job #3041684)

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

using namespace std;
ifstream f("date.in");
ofstream g("date.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=s.size()-1;
    s[++k]='%';
    for(int i=1;i<k;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<k)
            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<k;i++)
        s=s+a[i]/2;
    g<<s;
    return 0;
}