Pagini recente » Cod sursa (job #1821217) | Cod sursa (job #2761779) | Cod sursa (job #24636) | Cod sursa (job #2438561) | Cod sursa (job #2219823)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ordine.in") ;
ofstream g("ordine.out") ;
int v[1000001],ap[26] ;
int main()
{
int i, x,c1=0,c2=0,j,ok=0,l=0 ;
char a ;
while(f>>a)
{
x=a-'a'+1 ;
ap[x]++ ;
}
i=0 ;
while(ap[i]==0) i++ ;
c1=i ;
i++ ;
while(ap[i]==0) i++ ;
c2=i ;
int poz1=1 ;
int poz2=2 ;
while(c1!=-1||c2!=-1)
{
for(j=poz1;ap[c1]>0;j=j+2)
{
v[j]=c1 ;
ap[c1]-- ;
l++ ;
}
poz1=j ;
if(c2>-1) for(j=poz2;ap[c2]>0;j=j+2)
{
v[j]=c2 ;
ap[c2]-- ;
l++ ;
}
poz2=j ;
i=c2+1 ;
while(ap[i]==0&&i<=26) i++ ;
if(i<=26) c1=i ;
else c1=-1 ;
i=c1+1 ;
while(ap[i]==0&&i<=26) i++ ;
if(i<=26) c2=i ;
else c2=-1 ;
}
for(i=1;i<=l;i++)
{
x=v[i]+'a'-1 ;
g<<char(x) ;
}
return 0 ;
}