Cod sursa(job #306825)

Utilizator bugyBogdan Vlad bugy Data 21 aprilie 2009 23:19:10
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<iostream>   
#include<stdio.h>   
using namespace std;   
int v[28];   
int a[10001];   
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=1;   
		for(j=1;j<=26;j++)   
             if(s!=n+1)   
             {   
			 if(ok==0)   
                if(v[j]==((n-s+1)/2+1))   
                 {manevra=j;ok=1;}   
             else if( (v[j]!=0) && (ok) && (j!=manevra))
                 {manevra=j;ok=0;}   
	  
            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;   
}