Cod sursa(job #658588)
Utilizator | 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;
}