Cod sursa(job #160089)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 14 martie 2008 18:38:59
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
struct ab{
	int a,b;
};
int main(){
	int w[30]={0},i=0,j,t,poz,k=0;
	char x;
	ab v[30];
	freopen("ordine.in","r",stdin);
	freopen("ordine.out","w",stdout);
	while(scanf("%c",&x)!=EOF)
		w[x-97]++;
	for(i=0;i<=25;i++)
		if(w[i]) {
			v[++k].a=w[i];
			v[k].b=i+97;
		}
	i=1;
	j=2;
	while(i<=k || j<=k){
		//if(i<=k && j<=k) { 
		while(v[i].a && v[i].b){
			printf("%c%c",v[i].b,v[j].b); v[i].a--; v[j].a--;}
		//}
		//else if(i<=k) { printf("%c",v[i].b); v[i].a--; }
		//else if(j<=k) { printf("%c",v[j].b); v[j].a--; }
		
		
		if(v[i].a==0 && v[j].a==0) { i+=2; j+=2; }
		else if(v[i].a==0)  i+=2; 
		else if(v[j].a==0) j++;
	}
	return 0;
}