Cod sursa(job #2027991)
Utilizator | Surani Adrian Therevengerking | Data | 26 septembrie 2017 22:36:48 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 35 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include <bits/stdc++.h>
using namespace std;
const int Nmax = 100000 + 5;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, a[Nmax];
set <int>st;
int main()
{
fin >> n;
set <int> :: iterator it;
for(int i = 1; i <= n; ++i)
{
fin >> a[i];
it = st.upper_bound(a[i]);
if(it == st.end())
st.insert(a[i]);
else
{
st.erase(it);
st.insert(a[i]);
}
//for(auto i : st)
//fout << i << " ";
// fout << '\n';
}
fout << st.size() << '\n';
for(auto i : st)
fout << i << " ";
return 0;
}