Pagini recente » Cod sursa (job #842536) | Cod sursa (job #2176644) | Cod sursa (job #499595) | Cod sursa (job #3219144) | Cod sursa (job #2489901)
#include <fstream>
#include <algorithm>
#include <stack>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,x,i,l[100005],nr,poz,prc[100005];
stack <int> st;
int main()
{
f>>n;
f>>x;
l[1]=x;
for(i=2;i<=n;i++)
{
f>>x;
poz=lower_bound(l+1,l+nr+1,x)-l;
l[poz]=x;
prc[x]=l[poz-1];
if(poz>nr)
nr=poz;
}
g<<nr<<'\n';
x=l[nr];
st.push(x);
while(prc[x]!=0)
{
x=prc[x];
st.push(x);
}
while(!st.empty())
{
g<<st.top()<<' ';
st.pop();
}
g<<'\n';
return 0;
}