Pagini recente » Cod sursa (job #2071396) | Cod sursa (job #2003021) | Cod sursa (job #2199650) | Cod sursa (job #2811115) | Cod sursa (job #2954547)
#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++]));
for(G<<m<<'\n',b=1e6,c[m]=n,i=m;i;--i)
for(j=c[i];j;--j)
if(l[j]==i&&b>=a[j])
b=a[j],c[i-1]=j;
for(i=0;i<m;G<<c[i++]<<' ');
return 0;
}