Pagini recente » Cod sursa (job #1357305) | Cod sursa (job #1360450) | Cod sursa (job #3162361) | Cod sursa (job #2207880) | Cod sursa (job #2369556)
#include <bits/stdc++.h>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int m, n, x;
vector<int> v, d, p;
void printSubstring(int index)
{
if (index == 0)
return;
printSubstring(p[index]);
g << v[index] << ' ';
}
int main()
{
f >> n;
// index from 1
v.push_back(0);
while (n--) f >> x, v.push_back(x);
d.resize(v.size(), 1);
p.resize(v.size(), 0);
for (int i = 1; i < v.size(); ++i)
for (int j = 1; j < i; ++j)
if (v[i] > v[j] && d[i] < d[j] + 1)
d[i] = d[j] + 1,
p[i] = j;
int scmaxIndex = 1;
for (int i = 1; i < d.size(); ++i)
if (d[i] > d[scmaxIndex])
scmaxIndex = i;
g << d[scmaxIndex] << '\n';
printSubstring(scmaxIndex);
return 0;
}