Pagini recente » Cod sursa (job #2624661) | Istoria paginii utilizator/upb_cojocaru_matei_nitu | Cod sursa (job #907000) | Cod sursa (job #1744293) | Cod sursa (job #1365991)
#include <iostream>
#include <string>
#include <cstring>
#include <fstream>
using namespace std;
ifstream in("ordine.in");
ofstream out("ordine.out");
const int maxn=1000005;
char T[maxn];
int f[40];
int main()
{
in.getline(T,maxn);
int n=strlen(T);
int ultim=-1;
for(int i=1;i<=n;i++)
f[T[i-1]-'a']++;
for(int i=1;i<=n;i++)
{
int can=0;
for(int j=0;j<=26;j++)
{
if(f[j]>0 && j!=ultim)
{
can = j;
break;
}
}
for(int j=0;j<=26;j++)
{
if(f[j]>(n-i+1)/2)
{
can = j;
break;
}
}
f[can]--;
out<<(char) ('a'+can);
ultim=can;
}
return 0;
}