Cod sursa(job #267910)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 28 februarie 2009 15:02:52
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#include<string.h>

char s[1000001];
int fol[30];

int main()
{
  freopen("ordine.in","r",stdin);
  freopen("ordine.out","w",stdout);
  scanf("%s",&s);
  int n=strlen(s);
  for (int i=0;i<n;i++)
    fol[s[i]-'a'+1]++;
  int nrc=1;
  for (int i=1;i<=26;i++)
    if (fol[i])
      {
        do
          {
            printf("%c",i+'a'-1);
            fol[i]--;
            if (fol[i])
             {do{
                while (fol[nrc]==0||nrc==i)
                  nrc++;
                printf("%c",nrc+'a'-1);
                fol[nrc]--;
                printf("%c",i+'a'-1);
                fol[i]--;
                }while(fol[i]);
             }
          }
        while (fol[i]);
      }
  return 0;
}