Pagini recente » Cod sursa (job #180802) | Cod sursa (job #1059684) | Cod sursa (job #1690277) | Cod sursa (job #2785562) | Cod sursa (job #1253439)
#include <fstream>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int N, ii, maxim, V[100010], PD[100010], Poz[100010];
int main()
{
fin >> N;
for (int i=1; i<=N; i++) fin >> V[i];
for (int i=N; i>=1; i--)
{
PD[i] = 1;
Poz[i] = -1;
for (int j=i+1; j<=N; j++)
{
if (V[i] < V[j] && PD[i] < PD[j] + 1)
{
PD[i] = PD[j] + 1;
Poz[i] = j;
}
}
if (PD[i] > maxim) maxim = PD[i], ii = i;
}
fout << maxim << '\n' << V[ii] << ' ';
while (Poz[ii] != -1)
{
ii = Poz[ii];
fout << V[ii] << ' ';
}
fout.close();
return 0;
}