Pagini recente » Cod sursa (job #1319456) | Cod sursa (job #1217530) | Cod sursa (job #417228) | Cod sursa (job #1534394) | Cod sursa (job #3184375)
#include <fstream>
#include <vector>
std::ifstream fin("scmax.in");
std::ofstream fout("scmax.out");
int main () {
int n; fin >> n;
std::vector<int> v(n);
for (int i = 0; i < n; i += 1)
fin >> v[i];
std::vector<int> len(n, 1), index(n, -1);
for (int i = 0; i < n; i += 1)
for (int j = 0; j < i; j += 1)
if (v[j] < v[i] && len[i] < len[j] + 1)
len[i] = len[j] + 1, index[i] = j;
int result = len[0], pos = 0;
for (int i = 1; i < n; i += 1)
if (len[i] > result)
result = len[i], pos = i;
std::vector<int> seq;
while (pos != -1) {
seq.push_back (v[pos]);
pos = index[pos];
}
fout << result << '\n';
for (int i = seq.size () - 1; i >= 0; i -= 1)
fout << seq[i] << ' ';
return 0;
}