Cod sursa(job #109371)

Utilizator FlorianFlorian Marcu Florian Data 25 noiembrie 2007 10:33:58
Problema Ordine Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 1, Clasele 5-8 Marime 0.66 kb
#include<stdio.h>
FILE*f=fopen("ordine.in","r");
FILE*g=fopen("ordine.out","w");
long a[30];
char c;
int main()
	{
	long i,p,j;
	char x;
	char last;
	last='!';
	while(!feof(f))
		{
		fscanf(f,"%c",&c);
		if(c!='\n')
			{
			p=(int)c;
			a[p-64-32]++;
			}
		}
	for(i=1;i<=26;++i)
		{
		while(a[i])
			{
			c=(char)(i+64+32);
			if(last!=c) {	fprintf(g,"%c",c); last=c;  }
			else
			     {
			     x=c;
			     for(j=i+1;j<=26;++j)
				if(a[j])
					{
					a[j]--;
					c=(char)(j+64+32);
					last=c;
					fprintf(g,"%c",c);
					break;
					}
			     fprintf(g,"%c",x);

			     last=x;
			     }
			a[i]--;
			}
		}
	return 0;
	}