Pagini recente » Cod sursa (job #1086911) | Cod sursa (job #1420395) | Cod sursa (job #1697905) | Cod sursa (job #394199) | Cod sursa (job #1210501)
#include <fstream>
using namespace std;
ifstream is ("scmax.in");
ofstream os ("scmax.out");
int n;
long long v[100001], L[100001], mx, maxim, t;
int main()
{
is >> n;
for(int i = 1; i <= n; ++i)
is >> v[i];
L[n] = 1;
for(int k = n-1; k >= 1; --k)
{
mx = 0;
for(int i = k+1; i <= n; ++i)
{
if(v[i] > v[k] && L[i] > mx)
mx = L[i];
}
L[k] = mx+1;
if(L[k] > maxim)
maxim = L[k], t = k;
}
os << maxim << '\n';
os << v[t] << ' ';
for(int i = t+1; i <= n; ++i)
if(v[i] >= v[t] && L[i] == maxim-1)
os << v[i] << ' ', maxim--;
is.close();
os.close();
return 0;
}