Pagini recente » Cod sursa (job #2208163) | Cod sursa (job #1048390) | Cod sursa (job #1877315) | Cod sursa (job #1474115) | Cod sursa (job #1893082)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int v[100005], best[100005], poz[100005];
int n, mm, pi, mi;
void calcul (int i)
{
int m=0, p=0;
for (int j=i+1; j<=n; j++)
if (v[j] > v[i] && m < best[j])
{
m = best[j];
p = j;
}
best[i] = m+1;
poz[i] = p;
if (mm < best[i])
{
mm = best[i];
pi = poz[i];
mi = i;
}
}
int main()
{
f >> n;
for (int i=1; i<=n; i++)
f >> v[i];
for (int i=n; i>=1; i--)
calcul (i);
g << mm <<'\n';
g << v[mi] << ' ';
while (pi != 0)
{
g << v[pi] << ' ';
pi = poz[pi];
}
return 0;
}