Cod sursa(job #201324)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 30 iulie 2008 16:42:32
Problema Ordine Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
# include <stdio.h>
# include <string.h>
int i,ok,fr[300],x,n,k,l,z,v,j;
char ch,c,c2,c3;
int main ()
{
freopen ("ordine.in","r",stdin);
freopen ("ordine.out","w",stdout);
while (scanf ("%c",&ch)!=EOF)
{
x=ch;
fr[x-97]++;
n++;
}
n--;
while (ok==0)
{
ok=1;
i=0;
if (l==0)
{
x=0;
for (i=0;i<26;i++)
{
if (x<fr[i])
{
x=fr[i];
j=i;
}
if (fr[i]!=0)
z=1;
}
i=j;
if (x>=(n-k)/2)
{
if (x==(n-k)/2+1)
v=1;
c3=i+97;
l=1;
}


if (z==0)
{
printf ("%c",c3);
fr[c3-97]--;
}
if (v==1)
{
printf ("%c",c3);
fr[c3-97]--;

}
}
i=0;
while (i<26)
{
c2=i+97;
if (fr[i]!=0 && c!=c2 && c2!= c3)
{

ok=0;
fr[i]--;
k++;
c=i+97;
printf ("%c",c);
if (l==1 && fr[c3-97]>0)
{
printf ("%c",c3);
fr[c3-97]--;
c=0;
}
break;
}

i++;
}
}
return 0;
}