Cod sursa(job #2871479)
Utilizator | Serban Alexandru AlexSerban21 | Data | 14 martie 2022 20:25:11 |
---|---|---|---|
Problema | Ordine | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.83 kb |
#include <fstream>
using namespace std;
ifstream fin ("ordine.in");
ofstream fout ("ordine.out");
int k,fr[30],j,l,i,ant;
char v[1000001],g[1000001];
int main()
{
fin>>v;
for (i=0; v[i]; i++)
{
fr[v[i]-'a']++;
k++;
}
ant=-1;
for (i=0; v[i]; i++)
{
l=-1;
for (j=0; j<='z'-'a'; j++)
{
if (fr[j]>k/2&&ant!=j)
{
l=j;
break;
}
}
if (l==-1)
{
for (j=0; j<='z'-'a'; j++)
{
if (fr[j]!=0&&j!=ant)
{
l=j;
break;
}
}
}
fr[l]--;
ant=l;
k--;
g[i]='a'+l;
}
fout<<g;
return 0;
}