Cod sursa(job #1413016)

Utilizator hrazvanHarsan Razvan hrazvan Data 1 aprilie 2015 18:06:23
Problema Ordine Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.64 kb
#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;
}