Cod sursa(job #1212605)

Utilizator meriniucrMeriniuc Razvan- Dumitru meriniucr Data 25 iulie 2014 12:48:07
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;

ifstream mama("scmax.in");
ofstream tata("scmax.out");

int a[100001], minim[100001], r[100001],n, sir[100001];

int main()
{
    mama>>n;
    for(int i=0; i<n; i++)
        mama>>a[i];

    int j=0,maxim=1;
    minim[0]=a[0];

    for(int k, i=1; i<n; i++){
        k=j;
        if(a[i]>minim[j]) { r[i]=j+1; minim[j+1]=a[i]; j++; maxim=j+1;}
            else
            {
                while(a[i] <= minim[j] and j > -1)
                    j--;
                r[i]=j+1; minim[j+1]=a[i];
                j=k;
            }
    }
    tata<<maxim<<'\n';

    for(int i=0; i<=j; i++)
        tata<<minim[i]<<" ";
    return 0;
}