Pagini recente » Cod sursa (job #866891) | Cod sursa (job #386745) | Cod sursa (job #505038) | Cod sursa (job #1369788) | Cod sursa (job #1606528)
#include <bits/stdc++.h>
using namespace std;
char ch[1000003];
int a[28];
char c[1000003];
int main()
{
int i, j, n;
ifstream f("ordine.in");
f >> ch;
n = strlen(ch);
for(i = 0; i < n; i++)
{
a[ch[i] - 'a' + 1]++;
}
for(i = 1; i <= 26; i++)
cout << a[i] << " ";
bool ok;
for(i = 1; i <= n; i++)
{
ok = false;
for(j = 1; j <= 26; j++)
if(a[j] >= (n - i + 1) / 2 + 1 && j + 'a' - 1 != c[i - 1])
{
ok = true;
c[i] = j + 'a' - 1;
a[j]--;
break;
}
if(!ok)
for(j = 1; j <= 26; j++)
if(a[j] != 0 && j + 'a' - 1 != c[i - 1])
{
c[i] = j + 'a' - 1;
a[j]--;
break;
}
}
ofstream g("ordine.out");
g << c + 1;
g.close();
return 0;
}