Cod sursa(job #306978)

Utilizator bugyBogdan Vlad bugy Data 22 aprilie 2009 16:57:30
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<iostream.h>
#include<stdio.h>
//using namespace std;
int v[28];      
int a[1000001];
int main()      
{      
    char c;      
    int i,n=0,s=1,j,afis,ok=0,manevra=0;      
          
    FILE *f=fopen("ordine.in","r"), *g=fopen("ordine.out","w");      
    while(!feof(f))      
        {fscanf(f,"%c",&c);      
        v[(int)c-96]++;n++;}    
        n=n-2;      
           
    while (s<=n)     
        {ok=0;      
         for(j=1;j<=26;j++)      
             {      
				if( ( v[j] == ( (n - s + 1) / 2 + 1 ) ) && (j != manevra) )      
					 {	manevra=j;
						break;
					 }
				else if( (v[j]!=0) && (j!=manevra) && (!ok) )
					 {manevra=j;
				      ok=1;
					 }
			}
		 a[s] = manevra;
		 s++;
		 v[manevra]--;
		}
                  
    s--;      
    for(i=1;i<=s;i++)      
        {afis=a[i]+96;      
    fprintf(g,"%c",(char)afis); }      
                
     
fprintf(g,"\n");      
fclose(f);      
fclose(g);      
     
return 0;      
}