Cod sursa(job #1541309)

Utilizator sing_exFMIGhita Tudor sing_ex Data 3 decembrie 2015 22:10:09
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#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];
            }
    }
    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--;
    }
    ofstream g("scmax.out");
    while (!st.empty()) {
        g<<st.top()<<" ";
        st.pop();
    }
    return 0;
}