| Task: | Binge watching |
| Sender: | aalto25b_006 |
| Submission time: | 2025-09-10 16:24:55 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.01 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.14 s | details |
| #5 | ACCEPTED | 0.07 s | details |
| #6 | WRONG ANSWER | 0.17 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
Code
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 2e5 + 5;
struct fenwick_tree {
int f[N];
fenwick_tree() {
memset(f, 0, sizeof(f));
}
void upd(int i, int x) {
for (; i < N; i += i & -i) {
f[i] = max(f[i], x);
}
}
int get(int i) {
int r = 0;
for (; i > 0; i -= i & -i) {
r = max(r, f[i]);
}
return r;
}
};
int n;
pair<int, int> p[N];
vector<int> v;
fenwick_tree ft;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> p[i].first >> p[i].second;
v.emplace_back(p[i].first);
v.emplace_back(p[i].second);
}
sort(p + 1, p + n + 1);
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
for (int i = 1; i <= n; i++) {
p[i].first = lower_bound(v.begin(), v.end(), p[i].first) - v.begin() + 1;
p[i].second = lower_bound(v.begin(), v.end(), p[i].second) - v.begin() + 1;
ft.upd(p[i].second, 1 + ft.get(p[i].first));
}
cout << ft.get(N - 1);
return 0;
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 10 6 7 4 5 8 9 2 3 ... |
| correct output |
|---|
| 10 |
| user output |
|---|
| 10 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 10 1 1000 1 1000 1 1000 1 1000 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 404 882 690 974 201 255 800 933 ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 200000 177494 177495 157029 157030 6030 6031 15209 15210 ... |
| correct output |
|---|
| 200000 |
| user output |
|---|
| 200000 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 200000 1 1000000000 1 1000000000 1 1000000000 1 1000000000 ... |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 6
Verdict: WRONG ANSWER
| input |
|---|
| 200000 82334756 323555178 958182284 981100325 649818003 678160906 801994655 889397498 ... |
| correct output |
|---|
| 725 |
| user output |
|---|
| 318 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 3 1 1000 2 3 5 6 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 3 3 4 5 6 7 8 |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 2 1 2 3 4 |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
