Cod sursa(job #3323594)
| Utilizator | Data | 18 noiembrie 2025 19:44:49 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 50 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <bits/stdc++.h>
#define cin fin
#define cout fout
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int aux[100001];
int main() {
int n;
cin >> n;
int a[n + 1];
for(int i = 1; i <= n; i ++){
cin >> a[i];
}
int cnt = 1;
aux[1] = a[1];
for(int i = 2; i <= n; i ++){
if(a[i] > aux[cnt]){
cnt ++;
aux[cnt] = a[i];
}
else{
int poz = lower_bound(aux + 1, aux + cnt + 1, a[i]) - aux;
aux[poz] = a[i];
}
}
cout << cnt;
}
