Cod sursa(job #721022)
Utilizator | onisim necula misino | Data | 23 martie 2012 10:15:56 |
---|---|---|---|
Problema | Ordine | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.41 kb |
#include<fstream>
#include<cstring>
using namespace std;
ifstream f("ordine.in");
ofstream g("ordine.out");
int n,m,d,i,j,v[30];
char s[1000001];
int main()
{f>>s;
n=strlen(s)-1;
for(i=0;i<=n;++i)
v[s[i]-96]++;
++n;
m=-2102;
for(i=1;i<=n;++i)
{d=0;
for(j=1;j<=27;++j)
if((m!=j&&v[j]!=0&&d==0)||(v[j]>=(n-i+1)/2+1))
{m=j;
d=1;
}
g<<(char)(m+96);
v[m]--;
}
f.close();
g.close();
return 0;
}