Pagini recente » Cod sursa (job #49036) | Cod sursa (job #569503) | Cod sursa (job #2126445) | Cod sursa (job #417426) | Cod sursa (job #488110)
Cod sursa(job #488110)
#include<fstream>
using namespace std;
ifstream f1 ("ordine.in");
ofstream f2 ("ordine.out");
const int N=1<<20;
char s[N];
int len,apar[30];
int main()
{
char c;
int ant=30, k;
while (f1.get(c) && c>='a' && c<='z')
{
s[len]=c;
apar[s[len]-'a']++;
len++;
}
for (int i=0;i<=len;++i)
{
k=0;
for (int j=0;j<26;++j)
if (apar[j]==(len-i+1)/2+1 && j!=ant) k=j;
if (k!=0)
{
f2<<char('a'+k);
apar[k]--;
ant=k;
}
else
for (int j=0;j<26;++j)
if (apar[j] && j!=ant)
{
f2<<char('a'+j);
apar[j]--;
ant=j;
break;
}
}
f2<<"\n";
return 0;
}