# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1221696 | adam17 | Financial Report (JOI21_financial) | C++20 | 85 ms | 2632 KiB |
#include <iostream>
#include <vector>
using namespace std;
int N, D;
vector<int> A;
vector<int> B;
int main() {
scanf("%i %i", &N, &D);
A.resize(N);
for (int i = 0; i < N; i++) {
cin >> A[i];
}
B.resize(N + 1);
for (int i = 0; i < N + 1; i++) {
B[i] = ((i == 0) ? -2147483648 : 2147483647);
}
for (int x: A) {
int mensi = 0, vetsi = N, stred;
while (vetsi - mensi > 1) {
stred = (vetsi + mensi) / 2;
if (B[stred] >= x) {
vetsi = stred;
} else {
mensi = stred;
}
}
B[vetsi] = x;
}
for (int i = N; i >= 0; i--) {
if (B[i] != 2147483647) {
cout << i << endl;
return 0;
}
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |