Mai intai trebuie sa te autentifici.
Cod sursa(job #2188565)
Utilizator | Data | 27 martie 2018 11:20:00 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.82 kb |
#include <iostream>
#include <fstream>
#define Nmax 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
const int oo= (1<<31);
int main()
{ int N,V[Nmax],Poz[Nmax],Dis[Nmax],p,Max;;
fin>>N; Max=oo;
for(int i=1;i<=N;i++)
{
fin>>V[i];
Poz[i]=-1;
Dis[i]=1;
}
for(int i=N;i>=1;i--)
{
for(int j=i;j<=N;j++)
if(Dis[i]<Dis[j]+1 && V[i]<V[j])
{
Dis[i]=Dis[j]+1;
Poz[i]=j;
if(Dis[i]>Max)
{
Max=Dis[i];
p=i;
}
}
}
cout<<Max<<endl;
int i=p;
while(i!=-1)
{
cout<<V[i]<<" ";
i=Poz[i];
}
return 0;
}