Cod sursa(job #1647331)

Utilizator alexburdescuBurdescu Alexandru alexburdescu Data 10 martie 2016 20:02:05
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int i,n,k,j,ls[100009],maxi,r;
long long a[100009],sir[100009],copie[10001][10001];
int main ()
{
    fin>>n;
    fin>>a[1];
    sir[1]=a[1];
    ls[1]++;
    j=1;
    maxi=1;
    copie[1][1]=a[1];
    for(i=2;i<=n;i++)
    {
        fin>>a[i];
        if(a[i]<sir[j])
        {
            j++;
            sir[j]=a[i];
            ls[j]++;
            copie[j][ls[j]]=a[i];
        }
        if(a[i]>sir[j])
        {
            for(k=1;k<=j;k++)
            {
                if(a[i]>sir[k])
                {
                    sir[k]=a[i];
                    ls[k]++;
                    copie[k][ls[k]]=a[i];
                    if(ls[k]>maxi)
                    {
                        maxi=ls[k];
                        r=k;
                    }
                    k=j+1;
                }
            }
        }
    }
    fout<<maxi<<"\n";
    for(i=1;i<=maxi;i++)
    {
        fout<<copie[r][i]<<" ";
    }
    fin.close();
    fout.close();
    return 0;
}