Cod sursa(job #179878)

Utilizator n_lichkingSentes Norbert n_lichking Data 16 aprilie 2008 13:47:26
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
FILE *f=fopen("ordine.in","r");
FILE *g=fopen("ordine.out","w");

long v[33];

void cit()
{

char c;
  while(!feof(f))
  {fscanf(f,"%c",&c);
   ++v[int(c)-97];
    }
 --v[int(c)-97];
}

void solve()
{

int x,y;
 x=0;
  while(!v[y])
    ++x;
  y=x+1;

int sw;
sw=1;
while(sw)
 {sw=0;
   while(v[x])
  {fprintf(g,"%c",char(x+97));
   --v[x];
   if(v[y])
    {fprintf(g,"%c",char(y+97));
   --v[y];}
   sw=1;
   }
   
  if(v[y]&&v[y+1])
    {fprintf(g,"%c",char(y+98));
    --v[y+1];
     sw=1;}
  if(v[y])
  {x=y;
  y=y+1;}
   else if(v[y+1])
	  {x=y+1;
	  y=y+2;}

  }

if(v[x-1])
 fprintf(g,"%c",x+96);

}


int main()
{
cit();
solve();

fcloseall();
return 0;

}