Mai intai trebuie sa te autentifici.
Cod sursa(job #2498743)
Utilizator | Data | 24 noiembrie 2019 12:35:55 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.88 kb |
#include <bits/stdc++.h>
using namespace std;
int l[100001],ant[100001],a[100001],maxim,pozmax;
ofstream g("scmax.out");
bool scrie(int i)
{
if(l[i] == 0)
{
return true;
}
else
{
scrie(ant[i]);
g<<a[i]<<" ";
}
}
int main()
{
ifstream f("scmax.in");
int n;
f>>n;
for(int i=1;i<=n;++i)
f>>a[i];
l[1] = 1;
ant[1] = 0;
for(int i=2;i<=n;++i)
{
int m=0, p = 0;
for(int j=1;j<=i-1;++j)
if(a[i] > a[j] && l[j] > m)
{
m = l[j];
p = j;
}
l[i] = m+1;
ant[i] = p;
}
for(int i=1;i<=n;++i)
if(l[i] > maxim)
{
maxim = l[i];
pozmax = i;
}
g<<maxim<<'\n';
scrie(pozmax);
return 0;
}