Pagini recente » Cod sursa (job #626497) | Cod sursa (job #2693365) | Cod sursa (job #345172) | Cod sursa (job #25600) | Cod sursa (job #2591204)
#include <bits/stdc++.h>
using namespace std;
ofstream fout ("scmax.out");
int *v, *link;
void print (int poz) {
if (poz) {
print(link[poz]);
fout << v[poz] << ' ';
}
}
int main () {
ifstream fin ("scmax.in");
ios::sync_with_stdio(false);
vector <int> deck;
int n, i, last;
fin >> n;
v=new int[n], link=new int[n];
for (i=0; i<n; i++) {
fin >> v[i];
auto it=upper_bound(deck.begin(), deck.end(), v[i]-1);
if (it==deck.end())
deck.push_back(v[i]), link[i]=i-1, last=i;
else
*it=v[i], link[i]=it-deck.begin();
}
fout << deck.size() << '\n';
print(last);
return 0;
}