Pagini recente » Cod sursa (job #1925176) | Cod sursa (job #2800631) | Cod sursa (job #2443890) | Cod sursa (job #1787097) | Cod sursa (job #1863643)
#include <iostream>
#include <fstream>
using namespace std;
int V[100010];
int D[100010];
int P[100010];
int L[100010];
int mx;
int poz;
int main()
{
ifstream i("scmax.in");
ofstream o("scmax.out");
int N;
i >> N;
for(int a = 0; a < N; a++)
{
i >> V[a];
D[a] = 1;
P[a] = -1;
}
for(int a = 0; a < N; a++)
{
for(int b = a - 1; b >= 0; b--)
{
if(V[b] < V[a])
{
if(D[b] + 1 > D[a])
{
D[a] = D[b] + 1;
P[a] = b;
if(D[a] > mx)
{
mx = D[a];
poz = a;
}
}
}
}
}
o << mx << '\n';
int k = 0;
while(poz != -1)
{
L[k] = V[poz];
poz = P[poz];
k++;
}
for(int a = k - 1; a >= 0; a--)
{
o << L[a] << " ";
}
return 0;
}