Cod sursa(job #308226)

Utilizator bugyBogdan Vlad bugy Data 26 aprilie 2009 15:17:09
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream.h>  
#include<string.h>  

#define dim 1000001  
#define dim2 30  
   
   
char sir[dim]; 
 
int a[dim];  

unsigned long n,i,j,l,ok,x;  
   
   
int main()  
{  
	ifstream f("ordine.in");  
	ofstream g("ordine.out");  
   
	f.getline(sir, dim, '\n');  
	f.close();  
   
   
	n = strlen(sir);  
   
   
	for(i = 0; i < n; i++)  
 		a[sir[i]-'a'+1]++;  
   
   
	l = 1;  
	char car = ',';  
	while(l <= n)  
	{  
		ok = 0;  
  
		for(i = 1; i < dim2; i++)  
 			if( ( a[i] == ( ( n - l + 1 ) / 2 + 1 ) ) && ( ( i + 'a' - 1 ) != car ) ) 
			{
				x = i;
				break;
			}  
    				else if( ! ok && a[i] && ( ( i + 'a' - 1 ) != car ) ) 
				{
					x = i;
					ok = 1;
				}  
    
    
		car = (char)(x + 'a' - 1);  
		g<<car;  
		a[x]--;  
		l++;  
	}  
   
   
	g<<'\n';  
   
	g.close();  
   
	return 0;  
}