Cod sursa(job #658588)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 9 ianuarie 2012 09:31:55
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
int v[27];
char c[1000001];
int main ()
{
	int n,i,cc,j,d;
	ifstream f("ordine.in");
	ofstream g("ordine.out");
	f>>c;
	f.close();
	n=strlen(c)-1;
	for(i=0;i<=n;i++) 
		v[c[i]-97]++;
	n++;
	cc=-1;
	for(i=1;i<=n;i++) {
		d=0;
		for(j=0;j<=26;j++)
			if(((cc!=j)&&(v[j])&&(d==0))||(v[j]>=(n-i+1)/2+1)) {
				cc=j;
				d=1;
			}
		g<<char(cc+97);
		v[cc]--;
	}
	g.close();
	return 0;
}