Cod sursa(job #123606)

Utilizator policamatei paul polica Data 16 ianuarie 2008 18:49:36
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream.h>
#include<string.h>

ifstream f("ordine.in");
ofstream g("ordine.out");

long apar[28];
char a,min;


void citire()
{
//  a=f.get();

//  cout<<a;

  min='a';

  while(!f.eof())
  {
    a=f.get();

    if(a>='a' && a<='z')

    { if(a<min) min=a;

      apar[a-96]++;
    }
  }

  f.close();
}


int spate(int k)
{
  for(int i=k-1;i>=0;i--) 

   if(apar[i]) return i;

  return 0;
}


int main()
{
  citire();

  int i=min-96;

  while(i<=27)

   if(apar[i])

     { g<<char(i+96);
        
       apar[i]--;
                     
       int q=spate(i);

       if(q) i=q;

          else i++;
     }

   else i++;

  g.close();

  return 0;
}