Cod sursa(job #308225)

Utilizator bugyBogdan Vlad bugy Data 26 aprilie 2009 15:16:22
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<iostream>
#include<stdio.h>
using namespace std;
int v[28];
int a[1000000];
int main()
{
	char c;
	int i,n=0,s=1,j,afis,ok;
	
	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; 
		ok=0;
		while(s<=n)
		{ 
			for(j=1;j<=26;j++)
			 if(s!=n+1)
			 {
			 if(ok==0)
			   if(v[j]==(n-i+1))
				   {a[s]=j;s++;v[j]--;ok=1;j=1;}
			else if(v[j]!=0)
					{a[s]=j;s++;v[j]--;ok=0;}
			 }
			 else j=27;
			 break;
		}
	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;
}