Cod sursa(job #37688)

Utilizator the_dragon_of_rockTzogorean Alex the_dragon_of_rock 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;
}