Pagini recente » Cod sursa (job #384300) | Cod sursa (job #724181) | Cod sursa (job #2737914) | Cod sursa (job #3171721) | Cod sursa (job #2063159)
#include <fstream>
using namespace std;
int sol,mmax=-1000001,nr[5001],ii,lmax,j, n,mx,i,a[10001],l[10001];
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int main()
{f>>n;
for(i=1;i<=n;i++) f>>a[i];
l[n]=1;
for(i=n-1;i>=1;i--){
mx=0;
for(j=i+1;j<=n;j++){
if(a[j]>=a[i]&&l[j]>mx)mx=l[j];
}
l[i]=mx+1;
if(l[i]>lmax)lmax=l[i],ii=i;
}
g<<lmax<<'\n';
i=ii;
/*
for(i=n;i>=1;i--){
if(l[i]==1) {nr[i]=1;continue;}
for(j=i+1;j<=n;j++){
if(l[j]+1==l[i]&&a[j]>a[i]) {nr[i]+=nr[j];}
nr[i]=nr[i]%9901;
}
}
for(i=1;i<=n;i++)mmax=max(mmax,l[i]);
for(i=1;i<=n;i++)
if(l[i]==mmax)sol=(sol+nr[i])%9901;
g<<sol;*/
ii=0;int aa=0;
while(lmax){int ss=1000000;
for(j=ii+1;j<=n;j++) {
if(l[j]==lmax&&ss>a[j]&&aa<a[j]) ss=a[j],ii=j;
}
g<<ii<<" ";
aa=a[ii];
lmax--;
}
return 0;
}