Cod sursa(job #308224)

Utilizator bugyBogdan Vlad bugy Data 26 aprilie 2009 15:14:20
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<fstream>
#include<string>
using namespace std;
char v[1000000];
int a[27];
int main()
{int i,j,k,ok;
 char c;
 ifstream f("ordine.in");
 ofstream g("ordine.out");
 
 k=0;
 while(f>>c)
	 a[(int)c-(int)'a'+1]++, max=(int)c-(int)'a'+1;
 
 i=1;
 while(a[i]==0)
	 i++;
 k=0; 
 while (a[i]!=0)
	v[++k]=(char)((int)'a'+i-1); 
  
 
 
 
	    
i=1;
while(v[i]==0)i++;
g<<(char)((int)'a'+i-1);
v[i]--;
k=v[i];ok=1;
while(i<=26)
	 {while(v[i]!=0)
		 {if(k==1)
				{g<<(char)((int)'a'+i-1);
	             v[i]--;
				 /*j=i+1;
		         while(v[j]==0)
			     j++;
		         g<<(char)((int)'a'+j-1);
			     v[j]--;ok=1;*/
			     }		
			
			else if(k>1&&ok==1)
		     {j=i+1;
		      while(v[j]==0)
			  j++;
		      g<<(char)((int)'a'+j-1);
			  v[j]--;
		      g<<(char)((int)'a'+i-1);
	          v[i]--;
		     }	
			else if((k>1)&&(v[i]==k))
		    {g<<(char)((int)'a'+i-1);
			 v[i]--;
			 j=i+1;
		         while(v[j]==0)
			     j++;
		         g<<(char)((int)'a'+j-1);
			     v[j]--;
			 g<<(char)((int)'a'+i-1);
			 v[i]--;
			 ok=1;
		     }	
			
		  }
	 i++;k=v[i];ok=0;
	 }
 g<<'\n';
 f.close();
 g.close();
 return 0;
}