Pagini recente » Cod sursa (job #2494579) | Cod sursa (job #431528) | Cod sursa (job #321938) | Cod sursa (job #897949) | Cod sursa (job #2448925)
#include <iostream>
#include<fstream>
#include<vector>;
using namespace std;
#define nmax 5000
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int n,sir[nmax],lis[nmax];
int main()
{int i,j;
f>>n;
for(i=1;i<=n;i++)
f>>sir[i];
lis[1]=1;
int maxim=0;
for(i=2;i<=n;i++)
{
for(j=1;j<i;j++)
if(sir[j]<sir[i] && lis[i]<lis[j]+1)
{
lis[i]=lis[j]+1;
if(maxim<lis[i])
maxim=lis[i];
}
}
g<<maxim<<endl;
vector<int>v;
for(i=n;i>=1;i--)
if(maxim)
{
if(lis[i]==maxim)
{
v.push_back(i);
maxim--;
}
}
for(i=v.size()-1;i>=0;i--)
g<<v[i]<<" ";
return 0;
}