Cod sursa(job #2039763)

Utilizator alexandrainfoAlexandra Florea alexandrainfo Data 14 octombrie 2017 21:28:31
Problema Subsir 2 Scor 59
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
using namespace std;
FILE *f, *g;
int n,ma,maxi,i,k,j,mi,p,v[5001],nrx=0,l[5001],T[5001];
int main()
{f=fopen ("subsir2.in","r");
g=fopen ("subsir2.out","w");
fscanf (f,"%d",&n);
for (i=1;i<=n;++i)
{fscanf (f,"%d",&v[i]);
l[i]=999999999;
}
v[0]=-999999999;
l[0]=999999999;
l[n]=1;
T[n]=n;
for (i=n-1;i>=0;--i)
{mi=999999999;
for (j=i+1;j<=n;++j)
if (v[i]<v[j])
{if (v[j]<mi)
{mi=v[j];
if (l[i]>l[j])
{l[i]=l[j]+1;
T[i]=j;
}
}
}
if (l[i]==999999999)
{l[i]=1;
T[i]=i;
}
}
p=0;
while (p!=T[p])
{++nrx;
p=T[p];
}
fprintf (g,"%d\n",nrx);
p=0;
while (p!=T[p])
{fprintf (g,"%d ",T[p]);
p=T[p];
}
fprintf (g,"\n");
return 0;
}