Pagini recente » Cod sursa (job #1979482) | Cod sursa (job #282446) | Cod sursa (job #1083285) | Cod sursa (job #907574) | Cod sursa (job #156581)
Cod sursa(job #156581)
#include<stdio.h>
#define maxn 5001
long v[maxn],t[maxn],rez[maxn];
int n,i,j,p;
long long max;
FILE *f,*g;
int main()
{f=fopen("subsir2.in","r");
g=fopen("subsir2.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%ld",&v[i]);
for(i=n;i>0;i--)
{max=0;
for(j=i+1;j<=n;j++)
if(v[i]<v[j] )
if( max<rez[j])
{max=rez[j];p=j;}
else if(max==rez[j] && v[j]<v[p])
p=j;
rez[i]=max+1;
if(rez[p]==0)
t[i]=-1;
else
t[i]=p;}
max=0;p=0;
for(i=1;i<=n;i++)
if(max<rez[i])
{max=rez[i];p=i;}
fprintf(g,"%lld\n",max);
while(p!=-1)
{fprintf(g,"%d ",p);
p=t[p];}
fclose(f);
fclose(g);
return 0;}