Cod sursa(job #117616)

Utilizator savimSerban Andrei Stan savim Data 21 decembrie 2007 20:00:35
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int i,j,n;
char k;
int a[27];
FILE *f1,*f2;
int main()
{


	f1=fopen("ordine.in","r");
	f2=fopen("ordine.out","w");

	/*
	scanf("%s",&c);
	n=strlen(c);
	for (i=n; i>=1; i--)
	{
		scanf("%d",&c[i]);
		c[i]=c[i-1];
		a[c[i]-96]++;
	}
	*/
	n=0;
	while (!feof(f1))
	{
		fscanf(f1,"%c",&k);
		if (k=='\n')break;
		a[k-96]++;
		n++;
	}
	k='*';
	for (i=1; i<=n; i++)
	{
		int gas=0;
		for (j=1; j<=26; j++)
			if (a[j]==(n-i+1)/2+1  && char(j+96)!=k)
			{
				fprintf(f2,"%c",char(j+96));
				k=char(j+96);
				gas=1;
				a[j]--;
				break;
			}
		if (!gas)
		for (j=1; j<=26; j++)
			if (a[j]!=0 && char(j+96)!=k)
			{
			   fprintf(f2,"%c",char(j+96));
			   k=char(j+96);
			   gas=1;
			   a[j]--;
			   break;
			}
	}
	return 0;
}