Cod sursa(job #261404)

Utilizator swxxIoo Andrei Rares swxx Data 18 februarie 2009 11:02:05
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<fstream.h>     
#define Nmax 100001     
     
ifstream fin("scmax.in");     
ofstream fout("scmax.out");     
      
int a[Nmax],b[Nmax],c[Nmax],na,nb;     
      
int poz;     
      
void citire(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,j;     
fin>>na;     
for(i=1;i<=na;i++)     
{     
fin>>a[i];     
citire(a[i]);     
if(poz==-1)     
b[c[i]=++nb]=a[i];     
else     
b[c[i]=poz]=a[i];     
}     
fout<<nb<<'\n';     
for(i=na,j=nb;j>0;j--)     
{     
while(c[i]!=j) i--;     
b[j]=a[i];     
}     
for(i=1;i<=nb;i++)     
fout<<b[i]<<' ';     
fout<<'\n';     
return 0;     
  
  
}