Cod sursa(job #1268226)
| Utilizator | Data | 20 noiembrie 2014 19:06:39 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 35 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include "stdio.h"
#include <set>
using namespace std;
int a[100000], n, m = -200000000, k = 0;
int main() {
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d", &n);
for(int i = 0; i < n;++i)
scanf("%d",a + i);
set<int> sol;
set<int>::iterator itr;
sol.clear();
for(int i=0; i<n; i++)
{
sol.insert(a[i]);
itr = sol.find(a[i]);
itr++;
if(itr!=sol.end())
sol.erase(itr);
}
printf("%d\n", sol.size());
for(auto x : sol)
printf("%d ", x);
return 0;
}