Cod sursa(job #212245)

Utilizator tamicTamas Iulia tamic Data 4 octombrie 2008 21:02:14
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <string.h>

FILE *fin,*fout;
char s[1000001];
long contor[30];
long i,j,n,ok;

int main(){
	fin=fopen("ordine.in","r");
   fout=fopen("ordine.out","w");
   fscanf(fin,"%s",&s);
   n=strlen(s);
   for(i=0;i<n;i++)contor[s[i]-'a']++;
   for(i=0;i<n;i++){
      ok=0;
   	for(j=0;j<=27;j++)
      	if(contor[j]==(n-i+1)/2+1 && j!=s[i-1]-'a'){
         	fprintf(fout,"%c",j+'a');
            contor[j]--; ok=1;
         }
      if(!ok){
      	for(j=0;j<=27&&!ok;j++) if(contor[j]&&j!=s[i-1]-'a') ok=!ok;
         	fprintf(fout,"%c",j-1+'a');
            contor[j-1]--;
      }
   }
   fclose(fin); fclose(fout);
   return 0;
}