Cod sursa(job #950226)

Utilizator BLz0rDospra Cristian BLz0r Data 16 mai 2013 11:02:30
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<cstdio>
#include<cstring>
 
FILE *f=fopen ("ordine.in","r");
FILE *g=fopen ("ordine.out","w");

char s[1000002];
int v[30];
int main(){
    int i,j,last=-1,lg;
    
	fscanf(f,"%s",&s);
    lg=strlen(s);
    
	for(i=0;i<lg;++i){
        v[s[i]-'a']++;
	}
 
    for(i=0;i<lg;++i){
        for(j=0;j<26;++j){
            if(v[j]==(lg-i)/2+1){
                break;
			}
		}
        if(j<26){
            fprintf(g,"%c",j+'a');
            last=j;
            v[j]--;
            continue;
        }
        for(j=0;j<26;++j){
            if(j!=last && v[j]){
                break;
			}
		}
        if(j<26){
            fprintf(g,"%c",j+'a');
            last=j;
            v[j]--;
            continue;
        }
    }
    return 0;
}