Pagini recente » Cod sursa (job #711094) | Cod sursa (job #974075) | Cod sursa (job #2307269) | Cod sursa (job #2110747) | Cod sursa (job #571066)
Cod sursa(job #571066)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int BS(int *b, int len, int p){
int m,l=0,r=len-1;
while (l<=r){
m=l+(r-l)/2;
if(p>b[m])
l=m+1;
else
r=m-1;
}
return l;
}
int main(){
int *a,n,i,j,lmax=0,*l;
fin>>n;
a=new int[n];
l=new int[n];
for (i=0;i<n; ++i)
fin>>a[i];
for (i=0; i<n; ++i){
j=BS(l,lmax,a[i]);
if (j==lmax)
l[lmax++]=a[i];
}
fout<<lmax<<"\n";
for (i=0; i<lmax; ++i)
fout<<l[i]<<" ";
delete [] a;
delete [] l;
fin.close();
fout.close();
return 0;
}