Pagini recente » Cod sursa (job #2611191) | Cod sursa (job #979034) | Cod sursa (job #699628) | Cod sursa (job #2251510) | Cod sursa (job #2451911)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
std::ifstream in("scmax.in");
std::ofstream out("scmax.out");
std::vector<int>v;
std::vector<int>sol;
int main(){
int n;
in>>n;
for(int i=1,aux=0;i<=n;i++)
in>>aux,v.push_back(aux);
for(int i=0;i<v.size();i++)
if(sol.empty()|| v[i]>sol.back())
sol.push_back(v[i]);
else{
auto it=std::upper_bound(sol.begin(),sol.end(),v[i]);
*it=v[i];
}
out<<sol.size()<<'\n';
for(int &x:sol)
out<<x<<" ";
return 0;
}