Cod sursa(job #1638198)
| Utilizator | Data | 7 martie 2016 21:46:05 | |
|---|---|---|---|
| Problema | Ordine | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.02 kb |
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
int main()
{
char elozo, s;
int i, j, k, ok, n = 0, stat[30] = {0}, m;
while(!fin.eof()){
fin >> s;
if(fin.eof()){
break;
}
++stat[s - 'a'];
++n;
}
elozo = 0;
for(i = 1 ; i <= n ; i++)
{
m = 1;
for(j = 0 ; j < 26 && m; j++)
{
if(stat[j] > 0 && elozo != j + 'a')
{
stat[j]--;
ok = 1;
for(k = 0 ; k < 26 && ok; k++)
if(stat[k] > (n - i + 1) / 2)
ok = 0;
if(ok)
{
fout << (char)(j + 'a');
elozo = j + 'a';
m = 0;
}
else{
stat[j]++;
}
}
}
}
fout << "\n";
return 0;
}
