Pagini recente » Cod sursa (job #2853815) | Cod sursa (job #1380174) | Cod sursa (job #4793) | Cod sursa (job #552029) | Cod sursa (job #945841)
Cod sursa(job #945841)
#include <fstream>
using namespace std;
char s;
int size, last, f[27];
int main()
{
ifstream fin("ordine.in");
ofstream fout("ordine.out");
size = 0;
while (fin.get(s))
if (s >= 'a' && s <= 'z')
{
++f[s - 'a'];
++size;
}
last = -1;
for (int i = 1; i <= size; ++i)
{
int setnow = -1;
for (int j = 0; j < 26; ++j)
if (last != j && f[j] == (size - i + 1) / 2 + 1)
{
setnow = j;
break;
}
if (setnow != -1)
{
fout << char(setnow + 'a');
--f[setnow];
last = setnow;
}
else
{
for (int j = 0; j < 26; ++j)
if (last != j && f[j])
{
fout << char(j + 'a');
--f[j];
last = j;
break;
}
}
}
fin.close();
fout.close();
}