Pagini recente » Cod sursa (job #2766874) | Cod sursa (job #2031543) | Cod sursa (job #2286491) | Cod sursa (job #830150) | Cod sursa (job #2834757)
#include <bits/stdc++.h>
using namespace std;
int main(){
ifstream fin("scmax.in");
ofstream fout("scmax.in");
int n;
fin>>n;
vector<int> lis(1);
fin>>lis[0];
for(int i=2;i<=n;++i){
auto cb=[](int x, vector<int> &a){
int st=0, dr=a.size()-1;
int ans=dr;
while(st<=dr){
int mij=(st+dr)/2;
if(a[mij]==x) return mij;
if(a[mij]>x){
ans=mij;
dr=mij-1;
}else st=mij+1;
}
return ans;
};
int x; fin>>x;
if(x>lis.back()) lis.push_back(x);
else lis[cb(x,lis)]=x;
}
fout<<lis.size();
}