Cod sursa(job #275296)
Utilizator | Sergiu-Ioan Ungur ssergiuss | Data | 10 martie 2009 12:58:07 |
---|---|---|---|
Problema | Ordine | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include<algorithm>
#define DIM 1000001
using namespace std;
int a[31];
char s[DIM];
void solve(){
int i,n,prev;
gets(s);
n=strlen(s);
for(i=0; i<n; ++i)
++a[s[i]-'a'];
for(prev=-1; n; ){
for(i=0; i<26; ++i)
if(a[i]>n/2){
printf("%c",i+'a');
--a[i];
--n;
prev=i;
i=27;}
if(i==26)
for(i=0; i<26; ++i)
if(a[i]&&i!=prev){
printf("%c",i+'a');
--a[i];
--n;
prev=i;
i=27;}}}
int main(){
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
solve();
return 0;}