Cod sursa(job #2451602)
| Utilizator | Data | 27 august 2019 13:11:01 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include <fstream>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int p[100005], v[100005], q[100005];
int n, Q;
void bacc(int a, int b)
{
while(p[b] != a) b--;
if(a > 1) bacc(a-1, b-1);
cout << v[b] << ' ';
}
void rez()
{
int j;
cin >> n ;
for(int i = 1 ; i <= n ; i++)
{
cin >> v[i];
int aux = v[i];
j = 1;
while(j <= Q && q[j] < aux)
j++;
q[j] = aux;
p[i] = j;
Q = max(Q,j);
}
}
void print()
{
cout << Q << '\n';
bacc(Q, n);
}
int main()
{
rez();
print();
}
