Pagini recente » Cod sursa (job #1040001) | Cod sursa (job #1485302) | Cod sursa (job #56925) | Cod sursa (job #1680872) | Cod sursa (job #1605845)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
char s[1000005], v[1000005];
int f[30];
int n;
int main()
{
int i, j;
bool ok;
fin >> (s + 1);
n = strlen(s + 1);
for(i = 1; s[i]; i++)
{
j = s[i] - 'a' + 1;
f[j]++;
}
for(i = 1; i <= n; i++)
{
ok = false;
for(j = 1; j <= 26; j++)
if(f[j] >= (n - i + 1) / 2 + 1 && j + 'a' - 1 != v[i - 1])
{
ok = true;
v[i] = j + 'a' - 1;
f[j]--;
break;
}
if(!ok)
{
for(j = 1; j <= 26; j++)
if(f[j] != 0 && j + 'a' - 1 != v[i - 1])
{
v[i] = j + 'a' - 1;
f[j]--;
break;
}
}
}
//for(i = 1; i <= n; i++)
fout << (v + 1);
return 0;
}