Pagini recente » Cod sursa (job #2220028) | Cod sursa (job #1974739) | Cod sursa (job #1432566) | Cod sursa (job #885796) | Cod sursa (job #531524)
Cod sursa(job #531524)
#include<stdio.h>
#include<string>
FILE*f=fopen("ordine.in","r");
FILE*g=fopen("ordine.out","w");
int i,n,F[30],j,last;
char A[1000005],ok;
int main () {
fscanf(f,"%s",A+1);
n = strlen(A+1);
for ( i = 1 ; i <= n ; ++i )
++F[A[i]-'a'+1];
for ( i = 1 ; i <= n ; ++i ){
ok = 0;
for ( j = 1 ; j <= 26 ; ++j ){
if ( F[j] > n - i + 1 - F[j] ){
fprintf(g,"%c",j+'a'-1);
ok = 1 ;
last = j;
--F[j];
break;
}
}
if ( ok ) continue;
for ( j = 1 ; j <= 26 ; ++j ){
if ( F[j] && j != last ){
fprintf(g,"%c",j+'a'-1);
--F[j];
last = j;
break;
}
}
}
fclose(f);
fclose(g);
return 0;
}