Cod sursa(job #1068661)
Utilizator | Data | 28 decembrie 2013 16:23:01 | |
---|---|---|---|
Problema | PScPld | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
#include <cstring>
#define vmax 1000005
using namespace std;
ifstream f("pscpld.in");
ofstream g("pscpld.out");
char s[vmax];
int sol[vmax<<1],len,m,st,dr,res=0;
int main()
{ int i,m1,m2;
f>>s;
st=0; dr=strlen(s)-1;
len=2*(strlen(s)-1);
for(i=0;i<=len;i+=2)
{sol[i]=1; res++;}
for(i=0;i<=len;i++)
{ m=i/2;
m1=m+i%2; m2=m;
while(m1-1>=st && m2+1<=dr && s[m1-1]==s[m2+1])
{res++; sol[i]+=2; m1--; m2++;}
}
g<<res;
return 0;
}