Pagini recente » Cod sursa (job #1071309) | Cod sursa (job #2481613) | Cod sursa (job #751871) | Cod sursa (job #146384) | Cod sursa (job #775948)
Cod sursa(job #775948)
using namespace std;
#include<fstream>
#define Nmax 100001
#define Inf 0
int length[Nmax],poz[Nmax];
int main ()
{
int i,j,n,v[Nmax],pozmax,max;
ifstream f("scmax.in");
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
f.close();
poz[n]=0;
length[n]=1;
for(i=n-1;i>=1;i--)
{
max=Inf;
for(j=i+1;j<=n && max==Inf;j++)
if(max<length[j] && v[j]>v[i])
{
max=length[j];
poz[i]=j;
}
length [i]=max+1;
}
max=Inf;
for(i=1;i<=n;i++)
if(max<length[i])
{
pozmax=i;
max=length[i];
}
ofstream g("scmax.out");
g<<max<<"\n";
while(pozmax)
{
g<<v[pozmax]<<" ";
pozmax=poz[pozmax];
}
g.close();
return 0;
}