Pagini recente » Borderou de evaluare (job #1344237) | Cod sursa (job #1872412) | Cod sursa (job #1926909) | Borderou de evaluare (job #973314) | Cod sursa (job #2474160)
#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;
}