Pagini recente » Cod sursa (job #3279636) | Cod sursa (job #861542) | Cod sursa (job #768322) | Cod sursa (job #1634623) | Cod sursa (job #1541313)
#include <iostream>
#include <fstream>
#include <stack>
using namespace std;
int main()
{
int n,i,s,nr,j,maxpos,maxim = 0;
stack<int> st;
ifstream f("scmax.in");
f>>n;
int v[n],m[n];
for (i=0;i<n;i++) {
f>>v[i];
m[i] = 0;
}
f.close();
for (i=0;i<n-1;i++) {
if (!m[i]) m[i]++;
s = v[i];
nr = m[i];
for (j=i+1;j<n;j++)
if (v[j] > s) {
m[j] = ++nr;
if (maxim < m[j]) {
maxim = m[j];
maxpos = j;
}
s = v[j];
}
}
ofstream g("scmax.out");
g<<m[maxpos]<<endl;
i = maxpos;
st.push(v[maxpos]);
maxim = v[maxpos];
maxpos = m[maxpos] - 1;
i--;
while (maxpos) {
if (v[i] < maxim) {
st.push(v[i]);
maxpos--;
maxim = v[i];
}
i--;
}
while (!st.empty()) {
g<<st.top()<<" ";
st.pop();
}
g.close();
return 0;
}