Pagini recente » Cod sursa (job #1454955) | Cod sursa (job #2751530) | Cod sursa (job #2232298) | Cod sursa (job #1345506) | Cod sursa (job #1413016)
#include <stdio.h>
#define BAZA 26
#define MAXN 1000000
int fr[BAZA];
char s[MAXN + 1];
int main(){
FILE *in = fopen("ordine.in", "r");
FILE *out = fopen("ordine.out", "w");
fgets(s, MAXN + 1, in);
fclose(in);
int i, dr = 0;
for(i = 0; s[i] != '\n'; i++)
fr[s[i] - 'a']++;
int p1 = 0, p2 = 1, min, last = -1;
for(i = 0; s[i] != '\n'; i++){
min = 0;
while(min < BAZA && (fr[min] == 0 || last == min))
min++;
fr[min]--;
last = min;
fputc('a' + min, out);
}
for(i = 0; i < BAZA; i++){
if(fr[i] != 0){
s[dr] = i + 'a';
dr++;
}
}
fclose(out);
return 0;
}