Pagini recente » Cod sursa (job #904131) | Cod sursa (job #2093050) | Cod sursa (job #2352842) | Cod sursa (job #1670877) | Cod sursa (job #788107)
Cod sursa(job #788107)
#include<fstream>
#include<cstring>
using namespace std;
int n,nr[30];
char s[1000100];
int main()
{
int i,j,pred,now;
bool gasit;
ifstream fin("ordine.in");
fin>>(s+1);
fin.close();
n=strlen(s+1);
for(i=1;i<=n;i++)
nr[s[i]-'a']++;
ofstream fout("ordine.out");
pred=-1;
for(i=1;i<=n;i++)
{
gasit=false;
for(j=0;j<26 && !gasit;j++)
{
if(nr[j]==(n-i+1)/2+1)
{
now=j;
gasit=true;
}
}
for(j=0;j<26 && !gasit;j++)
{
if(nr[j] && j!=pred)
{
now=j;
gasit=true;
}
}
fout<<(char)(now+'a');
nr[now]--;
pred=now;
}
fout<<"\n";
fout.close();
return 0;
}