Cod sursa(job #282129)

Utilizator me_andyAvramescu Andrei me_andy Data 16 martie 2009 22:10:17
Problema Subsir 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream.h>
#define Nmax 10001

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

int a[Nmax],b[Nmax],c[Nmax],d[Nmax],na,nb;

int poz,ok;

void cautbin(int val)
 {
 int st=1,end=nb,mij;poz=-1;
 while(st<=end)
  {
  mij=(st+end)/2;
  if(b[mij]>=val)
   {
   poz=mij;
   end=mij-1;
   }
  else st=mij+1;
  }
 }

int main()
 {
 int i;
 f>>na;
 for(i=1;i<=na;i++)
  {
  f>>a[i];
  cautbin(a[i]);
  if(poz==-1)
  {
    b[++nb]=a[i];
    c[i]=nb;
   }
  else
   {
    b[poz]=a[i];
    c[i]=poz;
   }
  }
 ok=nb;
 while(ok>0)
 {
  while(ok!=c[i])
   i--;
   d[ok]=a[i];
   ok--;
 }
 g<<nb<<'\n';
 for(i=1;i<=nb;i++)
  g<<d[i]<<" ";
 return 0;
 }