Pagini recente » Cod sursa (job #1529186) | Cod sursa (job #1194423) | Cod sursa (job #1803542) | Cod sursa (job #1005160) | Cod sursa (job #611634)
Cod sursa(job #611634)
#include <fstream>
using namespace std;
const int N=30,M=1000002;
int v[N],n,p=-1;
char s[M];
ifstream in("ordine.in");
ofstream out("ordine.out");
inline int search(int last)
{
int x;
for (int i='z'-'a';i>=0;i--)
{
if (last==i)
continue;
if (2*v[i]-1==n)
return i;
if (v[i])
x=i;
}
return x;
}
int main()
{
int i,last=-1,x;
in.getline(s,M);
for (i=0;s[i];i++)
v[s[i]-'a']++;
for (n=i;n;n--)
{
x=search(last);
s[++p]=x+'a';
v[x]--;
last=x;
}
s[++p]='\n';
out<<s;
return 0;
}