Pagini recente » Cod sursa (job #2280486) | Cod sursa (job #953387) | Statistici david yaar (yaar) | Cod sursa (job #2989128) | Cod sursa (job #2011430)
#include <bits/stdc++.h>
using namespace std;
ifstream F("scmax.in");
ofstream G("scmax.out");
int n, lmx[100003], prv[100003], v[100003], maxx, k, m;
stack<int> st;
int main()
{
F >> n;
for(int i = 1; i<= n; ++ i) F >> v[i];
for(int i = 1; i <= n; ++ i)
{
if(!lmx[i]) lmx[i] = 1;
for(int j = i+1; j <= n; ++ j)
if(v[i] < v[j])
{
if(lmx[j] < lmx[i]+1) lmx[j] = lmx[i] + 1, prv[j] = i;
}
}
for(int i = 1; i <= n; ++ i) maxx < lmx[i] ? maxx = lmx[i], m = i : k++;
G << maxx <<'\n';
for(int i = m; i > 0; i = prv[i])
st.push(v[i]);
while(!st.empty()) G << st.top() << " ", st.pop();
return 0;
}