Cod sursa(job #2788776)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 26 octombrie 2021 14:09:12
Problema PScPld Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.38 kb
#include<bits/stdc++.h>
using namespace std;
ifstream F("pscpld.in");
ofstream G("pscpld.out");
string s;
long long a[2000002],n,i,j,c=1,p=2,S=1;
int main()
{
    for(F>>s,n=s.size()*2+1,a[1]=1,i=2;i<n;++i) {
		for(j=min(a[c*2-i],max(p-i,0LL));i+j<n&&j<i&&((i+j)%2||s[(i+j+1)/2]==s[(i-j-1)/2]);++j);
		if(i+j>p)
			c=i,p=i+j;
		a[i]=j,S+=j/2+j%2;
	}
	G<<S;
    return 0;
}