Pagini recente » Cod sursa (job #399418) | Cod sursa (job #1802621) | Cod sursa (job #598101) | Cod sursa (job #2284318) | Cod sursa (job #2607826)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scamax.out");
int n, v[10005], scm[10005], maxim,poz;
void afisare(int poz)
{
int i = poz - 1;
for (i = poz - 1; i >= 1; i--)
{
if (scm[i] == scm[poz] - 1 && v[poz] > v[i])
{
afisare(i);
break;
}
}
fout << v[poz] << ' ';
}
int main()
{
fin >> n;
for (int i = 1; i <= n; i++)
fin >> v[i];
scm[1] = 1; maxim = 1;
for (int i = 2; i <= n; i++)
{
scm[i] = 1;
for (int j = 1; j < i; j++)
if (v[i] > v[j] && scm[j] + 1 > scm[i])
scm[i] = scm[j] + 1;
if (scm[i] > maxim)
maxim = scm[i],poz=i;
}
fout << maxim << '\n';
afisare(poz);
return 0;
}