Cod sursa(job #588575)

Utilizator maritimCristian Lambru maritim Data 8 mai 2011 18:00:40
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;

char S[2000100];
int A[301];
int nr;
int P;
char c;
char d;

int main()
{
	FILE *f = fopen("ordine.in","r");
	FILE *g = fopen("ordine.out","w");
	
	fscanf(f,"%s",&S);
	nr = strlen(S);
	for(int i=0;i<nr;i++)
		A[S[i]] ++;
	d = NULL;
	for(int i=1;i<=nr;i++)
	{
		c = NULL;
		for(int j='a';j<='z';j++)
			if((A[j] && j != d && !c) || 2*A[j]-1>nr-i)
				c = j;
		A[c] --;
		d = c;
		fprintf(g,"%c",c);
	}
	
	fclose(g);
	fclose(f);
	return 0;
}