Pagini recente » Cod sursa (job #69796) | Cod sursa (job #1515893) | Cod sursa (job #2890890) | Cod sursa (job #190788) | Cod sursa (job #2954538)
#include<fstream>
using namespace std;
ifstream F("subsir2.in");
ofstream G("subsir2.out");
int n,i,a[5001],b,c[5001],l[5001],m,j;
int main()
{
for(F>>n,i=1;i<=n;F>>a[i],l[i++]=1);
for(i=2;i<=n;++i)
for(j=1;j<i;++j)
if(a[i]>a[j]&&l[i]<l[j]+1)
l[i]=l[j]+1;
for(i=1;i<=n;m=max(m,l[i]),++i);
for(G<<m<<'\n',c[m+1]=n,i=m;i;--i)
for(b=1e6,j=c[i+1];j;--j)
if(l[j]==i&&b>=a[j])
b=a[j],c[i]=j;
for(i=1;i<=m;G<<c[i++]<<' ');
return 0;
}