Pagini recente » Cod sursa (job #341867) | Cod sursa (job #618219) | Cod sursa (job #1623715) | Cod sursa (job #892883) | Cod sursa (job #1782471)
#include <fstream>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
long long N, poz, op[100003], a[100003], MAX, Max = 0, Min = 2000000003;
int main()
{
f >> N;
for(int i = 1; i <= N; i++) f >> a[i];
op[N] = 1;
for(int i = N; i >= 1; i--) {
Max = 0;
for(int j = i + 1; j <= N; j++)
if(Max <= op[j] && a[i] < a[j]) Max = op[j];
op[i] = Max + 1;
if(op[i] > MAX) MAX = op[i];
}
g << MAX << "\n";
while(MAX) {
Min = 2000000003;
for(int i = 1; i <= N; i++)
if(op[i] == MAX && Min > a[i])
Min = a[i], poz = i;
g << a[poz] << " ";
MAX--;
}
g << "\n";
return 0;
}