Pagini recente » Cod sursa (job #1492492) | Cod sursa (job #2678521) | Cod sursa (job #2732499) | Cod sursa (job #1275711) | Cod sursa (job #2938912)
#include <bits/stdc++.h>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int v[100001],sir[100001];
int main()
{
int n,i,j=0;
in>>n;
for(i=1;i<=n;++i)
in>>v[i];
sir[++j]=v[1];
for(i=2;i<=n;++i)
{
if(v[i]>sir[j])
sir[++j]=v[i];
else{
int st=1;
int dr=j;
int ans=-1;
while(st<=dr){
int mid=(st+dr)/2;
if(v[i]>sir[mid])
st=mid+1;
else{
ans=mid;
dr=mid-1;
}
}
sir[ans]=v[i];
}
}
out<<j<<'\n';
for(i=1;i<=j;++i)
out<<sir[i]<<" ";
return 0;
}