Cod sursa(job #1452560)

Utilizator refugiatBoni Daniel Stefan refugiat Data 21 iunie 2015 12:42:39
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include<cstdio>
#include<iostream>
#include<fstream>
#include<stack>
#include<bitset>
#include<list>
using namespace std;
int main()
{
    //ifstream si;
    //si.open("gardul.in");
    FILE* si=fopen("scmax.in","r");
    //FILE* so=fopen("ordine.out","w");
    ofstream so;
    so.open("scmax.out");
    int n;
    fscanf(si,"%i",&n);
    int i;
    int v[n][3];
    int m=0,poz,maxx=0,p;
    for(i=0;i<n;++i)
    {
        fscanf(si,"%i",&v[i][0]);
        maxx=0;
        p=-1;
        int j;
        for(j=0;j<i;++j)
        {
            if(v[i][0]>v[j][0])
                if(maxx<v[j][1])
                {
                    maxx=v[j][1];
                    p=j;
                }
        }
        v[i][1]=maxx+1;
        if(v[i][1]>m)
        {
            m=v[i][1];
            poz=i;
        }
        v[i][2]=p;
    }
    so<<m<<'\n';
    stack<int> s;
    while(poz!=-1)
    {
        s.push(v[poz][0]);
        poz=v[poz][2];
    }
    while(s.size())
    {
        so<<s.top()<<' ';
        s.pop();
    }
    so<<'\n';

}