Pagini recente » Cod sursa (job #1368360) | Cod sursa (job #2610931) | Cod sursa (job #121500) | Cod sursa (job #538498) | Cod sursa (job #2919824)
#include <bits/stdc++.h>
#define L 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
vector <int> ans;
int v[L], seq[L];
int main(){
int n, i, pos;
fin >> n;
for (i = 0; i < n; i++)
fin >> v[i];
for (i = 0; i < n; i++){
auto it = lower_bound(ans.begin(), ans.end(), v[i]);
if (it == ans.end()){
pos = ans.size();
ans.push_back(v[i]);
}
else{
*it = v[i];
pos = it - ans.begin();
}
if (!seq[pos])
seq[pos] = v[i];
}
fout << ans.size() << "\n";
for (i = 0; i < (int)ans.size(); i++)
fout << ans[i] << " ";
fout << "\n";
return 0;
}