Cod sursa(job #37688)
Utilizator | Data | 25 martie 2007 11:56:01 | |
---|---|---|---|
Problema | Elimin 2 | Scor | 10 |
Compilator | cpp | Status | done |
Runda | preONI 2007, Runda 4, Clasa a 10-a | Marime | 2.15 kb |
#include<fstream>
using namespace std;
int a[2005],n,b[2005],m,c[2005],mc;
int main()
{
ifstream in("elimin2.in");
ofstream out("elimin2.out");
char s[2005];
in>>s;
int i,j;
n=0;
for (i=0;s[i];i++)
a[++n]=s[i]-'0';
int ok=1,k,okk;
for (i=1;i<=n/2 && ok;i++)
if (a[i]!=a[n-i+1])
ok=0;
int x,y;
if (ok==1)
for (i=1;i<=n;i++) out<<a[i];
else
{
for (i=1;i<n && mc<n-i;i++)
for (j=1;j<=n-i+1;j++)
{
m=0;
for (k=1;k<j;k++)
b[++m]=a[k];
for (k=j+i;k<=n;k++)
b[++m]=a[k];
okk=1;
for (k=1;k<=m/2 && okk;k++)
if (b[k]!=b[m-k+1])
okk=0;
for (k=1;k<=m;k++)
out<<b[k];
out<<" "<<okk<<"\n";
if (okk==1 && m>=mc)
{
if (m>mc)
{
for (k=1;k<=m;k++)
c[k]=b[k];
mc=m;
}
else
if (m==mc)
{
k=1;
while(b[k]==c[k])
k++;
if (b[k]>c[k])
for (k=1;k<=m;k++)
c[k]=b[k];
}
}
/*for (k=1;k<=m;k++) out<<b[k];
out<<"\n";*/
}
}
for (i=1;i<=mc;i++)
out<<c[i];
return 0;
}