Pagini recente » Cod sursa (job #1313626) | Cod sursa (job #1348057) | Cod sursa (job #824088) | Cod sursa (job #961163) | Cod sursa (job #1463124)
#include <fstream>
using namespace std;
int v[100003], l[100003];
int n, i, k, t, maxim;
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
f >> n;
for (i=1; i<=n; i++)
f >> v[i];
l[n] = 1;
for (k=n-1; k>=1; k--)
{
maxim = 0;
for (i=k+1; i<=n; i++)
if (v[i]>v[k] && l[i]>maxim)
maxim = l[i];
l[k] = 1+maxim;
}
maxim = l[1];
t = 1;
for (k=1; k<=n; k++)
if (l[k]>maxim)
{
maxim = l[k];
t = k;
}
g << maxim << "\n" << v[t] << " ";
for (i=t+1; i<=n; i++)
if (v[i]>v[t] && l[i]==maxim-1)
{
g << v[i] << " ";
maxim--;
}
return 0;
}