Cod sursa(job #2063380)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 11 noiembrie 2017 11:11:13
Problema Subsir 2 Scor 52
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
long long n,i,v[5001],l[5001],ok,k,maxim,elem,minim,copie,j;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];

    for(i=n;i>=1;i--)
    {
         minim=INT_MAX;
         maxim=INT_MAX;
        for(j=i+1;j<=n;j++)
        if(v[i]<=v[j]&&v[j]<minim&&l[j]<maxim){minim=v[j];maxim=l[j];}

        if(maxim!=INT_MAX)l[i]=maxim+1;
        else l[i]=1;
    }
   maxim=INT_MAX;

   minim=INT_MAX;


    for(i=1;i<=n;i++)
    {
        if(v[i]<minim)
        {
            minim=v[i];
            if(l[i]<maxim)maxim=l[i];
        }
    }


    g<<maxim<<'\n';

    elem=INT_MIN;
    long long  poz=0;
  long long maxim1;
    while(maxim)
    {

    minim=INT_MAX;
    maxim1=INT_MAX;
    for(i=poz+1;i<=n;i++)
    if(l[i]==maxim&&v[i]>=elem&&v[i]<maxim1){poz=i;minim=v[i];maxim1=v[i];}
    else if(v[i]>=elem&&v[i]<maxim1)maxim1=v[i];

    g<<poz<<" ";
    elem=v[poz];
    maxim--;


    }


    return 0;
}