Pagini recente » Cod sursa (job #2083030) | Cod sursa (job #1538339) | Cod sursa (job #942351) | Cod sursa (job #248862) | Cod sursa (job #1109441)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> pre, a, lg;
ifstream f("scmax.in");
ofstream g("scmax.out");
void afisare (int k)
{
if (k==0)
return ;
afisare (pre[k]);
g<<a[k]<<' ';
}
int main()
{
int i,j,n,max=1;
f>>n;
pre.resize(n+1);
a.resize(n+1);
lg.resize(n+1);
for (i=1; i<=n; i++)
f>>a[i];
for (i=1; i<=n; i++)
{
lg[i]=1;
pre[i]=0;
for (j=i; j>0; j--)
if (lg[i]<=lg[j] && a[i]>a[j])
{
lg[i]=lg[j]+1;
pre[i]=j;
}
if (lg[max]<lg[i])
max=i;
//cout<<lg[i]<<' '<<pre[i]<<endl;
}
g<<lg[max]<<endl;
afisare (max);
}