Pagini recente » Cod sursa (job #2372360) | Cod sursa (job #932323) | Cod sursa (job #1375903) | Cod sursa (job #3135033) | Cod sursa (job #775947)
Cod sursa(job #775947)
using namespace std;
#include<fstream>
#define Nmax 50001
#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;
}
if(!max^Inf)
length[i]=1;
else
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;
}