Cod sursa(job #531060)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 8 februarie 2011 20:51:57
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
#include<string>

FILE*f=fopen("ordine.in","r");
FILE*g=fopen("ordine.out","w");

int i,L,F[30],pp,j,pi;
char Sir[1000005],Rez[1000005];

int main () {
	fscanf(f,"%s",Sir+1);
	L = strlen(Sir + 1);
	for ( i = 1 ; i <= L ; ++i )
		++F[Sir[i] - 'a'+1];
	pi = 1; pp = 2;
	for ( i = 1 ; i <= 26 ; ++i ){
		if ( pi < pp ){
			for ( j = pi ; F[i] ; --F[i], j += 2 )
				Rez[j] = i + 'a' - 1;
			pi = j;
		}
		else{
			for ( j = pp ; F[i] ; --F[i], j += 2 )
				Rez[j] = i + 'a' - 1;
			pp = j;
		}
	}
	
	fprintf(g,"%s",Rez+1);
	
	fclose(f);
	fclose(g);
	
	return 0;
}