Cod sursa(job #340003)

Utilizator Pepelea_FlaviuFlaviu Pepelea Pepelea_Flaviu Data 12 august 2009 15:49:14
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
# include <stdio.h>
# include <string>

using namespace std;

# define FIN "ordine.in"
# define FOUT "ordine.out"
# define MAXN 1000010

char s[MAXN];
int a[80];
int i,aux;
char j,pred,succ;

     int main()
     {
         freopen(FIN,"r",stdin);
         freopen(FOUT,"w",stdout);
         
         scanf("%s",s+1);
         aux = strlen(s+1);
         for (i = 1; i <= aux; ++i)
           a[s[i]-'0']++;  
           
         pred = ' ';   
         for (i = 1; i <= aux; ++i)
           {
               succ = 'z';
               for (j = 'a'; j <= 'z'; ++j)
                 if (a[j-'0']==(aux-i+1)/2+1)
                   {
                      succ = j;
                      break;
                   }
               else
                 if (a[j-'0']!=0&&j!=pred&&j<succ) succ = j;
               printf("%c",succ);
               a[succ-'0']--;
               pred = succ;
           }
         
         return 0;
     }