Cod sursa(job #1068648)
| Utilizator | Data | 28 decembrie 2013 16:06:21 | |
|---|---|---|---|
| Problema | PScPld | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 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.read(s,vmax);
len=(strlen(s)-2)*2;
for(i=0;i<len;i+=2)
{sol[i]=1; res++;}
st=0; dr=len/2-1;
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;
}
