Cod sursa(job #2847924)
Utilizator | Adelina Petre adelinapetre | Data | 11 februarie 2022 19:26:02 |
---|---|---|---|
Problema | Ordine | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream cin("ordine.in");
ofstream cout("ordine.out");
int f[30];
char s[1000005],ch;
int main()
{
int n,nr,trec,p,i,j;
cin.getline(s,1000001);
n=strlen(s);
for(i=0; i<n; i++)
f[s[i]-'a']++;
trec=-1;
for(i=0; i<n; i++)
{
p=-1;
for(j=0; j<26; j++)
if(((f[j]>0 && p<0) || (f[j]>=(n-i)/2+1 && trec!=j)) && j!=trec)
p=j;
cout<<(char)(p+'a');
trec=p;
f[p]--;
}
return 0;
}