Pagini recente » Cod sursa (job #2742474) | Cod sursa (job #1799290) | Cod sursa (job #1776754) | Cod sursa (job #1682846) | Cod sursa (job #637054)
Cod sursa(job #637054)
#include<fstream>
#include<iostream>
using namespace std;
ifstream f("palm.in");
ofstream h("palm.out");
int n=0, v[600], best[600], poz, maxim, k, l[600], nr, bun, m, j, bestf[600], ok, mijloc, d, i, s, r;
char c, a[600];
int main()
{
int i, j, poz;
nr = 1;
while (!f.eof())
{
f>>c;
n=n+1;
a[n]=c;
}
n=n-1;
for (i=1; i<=n; i++)
v[i]=int(a[i]);
for (i = 1; i <= n; i++)
{
maxim=1;
for (j=i+1; j<=n; j++)
if (v[j]==v[i])
{
poz=j;
bun=j;
ok=1;
k=i;
s=i;
if ((i+j)%2==0)
{
mijloc=(i+j)/2;
while (ok==1 && k<mijloc)
{
k=k+1;
bun=bun-1;
if (v[k]!=v[bun])
ok=0;
if (v[k]<v[k-1])
ok=0;
if (v[bun]<v[bun+1])
ok=0;
}
if (ok==0)
best[i]=1;
else
best[i]=(j-i)+1;
if (maxim<best[i])
{
maxim=best[i];
}
}
else
{
mijloc=(i+j)/2;
while (ok==1 && k<=mijloc)
{
k=k+1;
bun=bun-1;
if (v[k]!=v[bun])
ok=0;
if (v[k]<v[k-1])
ok=0;
if (v[bun]<v[bun+1])
ok=0;
}
if (ok==0)
best[i]=1;
else
best[i]=(j-i)+1;
if (maxim<best[i])
{
maxim=best[i];
}
}
}
bestf[i]=maxim;
}
maxim = 0;
for (i = 1; i <= n; i++)
if (maxim < bestf[i])
maxim = bestf[i];
h<<maxim<<'\n';
f.close();
h.close();
return 0;
}