Pagini recente » Cod sursa (job #1737015) | Cod sursa (job #1830342) | Cod sursa (job #2732292) | Cod sursa (job #1851341) | Cod sursa (job #3191663)
#include <bits/stdc++.h>
using namespace std;
int n,x;
int binary_search(vector<int>v,int x){
int right=0,left=v.size(),mid;
while(right<left){
mid=(right+left)/2;
if(v[mid]>x){
left=mid-1;
} else if(v[mid]<x)
right=mid+1;
else{
return mid;
}
}
return left;
}
int LIS_mine(vector<int>(v)){
if(v.size()==1)
return 1;
vector <int>ans;
ans.push_back(v[0]);
for(int i=1;i<n;i++){
if(v[i]>ans.back()){
ans.push_back(v[i]);
} else{
ans[binary_search(v,v[i])+1]=v[i];
}
}
return ans.size();
}
int main() {
cin>>n;
vector <int>v;
for(int i=0;i<n;i++){
cin>>x;
v.push_back(x);
}
cout<<LIS_mine(v);
return 0;
}