Pagini recente » Cod sursa (job #412333) | Cod sursa (job #2139669) | Cod sursa (job #1357350) | Cod sursa (job #1274610) | Cod sursa (job #526954)
Cod sursa(job #526954)
#include <iostream>
#include <stdio.h>
using namespace std;
int n,ma;
char T[1000000];
int i,j;
int A[40];
int urm(int de_unde)
{
int i;
for (i=de_unde+1;i<=40;i++)
if (A[i])
return i;
return 0;
}
int main()
{
FILE * f;
f=fopen("ordine.in","r");
FILE * g;
g=fopen("ordine.out","w");
fgets(T,1000000,f);
n=strlen(T);
for (i=0;i<n;i++)
A[T[i]-'a'+1]++;
i=urm(0);
j=urm(i);
ma=j;
while (ma!=0)
{
while (A[i] && A[j])
{
fprintf(g,"%c",char(i+'a'-1));
fprintf(g,"%c",char(j+'a'-1));
A[i]--;
A[j]--;
}
if (!A[i])
{
i=urm(ma);
ma=i;
if (!i && urm(j))
{
fprintf(g,"%c",char(j+'a'-1));
return 0;
}
}
if (!A[j])
{
j=urm(ma);
ma=j;
if (!j && i)
{
fprintf(g,"%c",char(i+'a'-1));
return 0;
}
}
}
fclose(f);
fclose(g);
return 0;
}