Cod sursa(job #1668287)

Utilizator sebastiannrxRichiteanu Mihai Sebastian sebastiannrx Data 29 martie 2016 18:37:06
Problema Subsir 2 Scor 49
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int n,i,j,nrs,nr,lmin,poz,v[5001],p[5001],t[5001];
int main()
{ f>>n;
  for(i=1;i<=n;++i)
    f>>v[i];
   t[n]=0;
   p[n]=1;

    for(i=n-1;i>=1;--i)
   {nr=0;
    lmin=32000;
       for(j=i+1;j<=n;++j)
       if(v[j]>v[i])
         {nr++;

          if(v[j]<lmin)
        {lmin=v[j];
            poz=j;

         }}
         if(nr==0)
           {p[i]=1;
            t[i]=0;

           }
           else
           {
            p[i]=p[poz]+1;
            t[i]=poz;

           }

    }
    /* for(i=1;i<=n;++i)
       g<<p[i]<<' ';
       g<<'\n';
       for(i=1;i<=n;++i)
        g<<t[i]<<' ';
        g<<'\n'; */
        g<<p[1]<<'\n';
   g<<v[1]<<' ';
   nrs=p[1];
   poz=v[1];
   for(i=2;i<=n&&nrs>0;++i)
      if(p[v[i]]<=nrs&&v[i]>poz)
       {g<<v[i]<<' ';
        nrs--;
        poz=v[i];
       }

    return 0;
}