Submission #11599935
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define trav(a, x) for(auto& a : x)
#define all(x) x.begin(), x.end()
#define sz(x) (int)(x).size()
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
const int N = (int)2e5 + 50;
#define lson(x) 2*x+1
#define rson(x) 2*x+2
struct node {
int sum, pref;
void add(int val) {
sum += val;
pref = max(sum, 0);
}
};
node merge(node L, node R) {
return {L.sum + R.sum, max(L.sum + R.pref, L.pref)};
}
struct Tree {
node dat[4 * N];
void init(int x, int l, int r) {
if(l == r) {dat[x] = {-1, 0}; return ;}
int mid = (l + r) / 2;
init(lson(x), l, mid);
init(rson(x), mid + 1, r);
dat[x] = merge(dat[lson(x)], dat[rson(x)]);
}
void update(int pos, int x, int l, int r, int val) {
if(l == r) {dat[x].add(val); return ;}
int mid = (l + r) / 2;
if(pos <= mid) update(pos, lson(x), l, mid, val);
else update(pos, rson(x), mid + 1, r, val);
dat[x] = merge(dat[lson(x)], dat[rson(x)]);
}
node query(int a, int b, int x, int l, int r) {
if(r < a || b < l) return {0, 0};
int mid = (l + r) / 2;
if(a <= l && r <= b) return dat[x];
else return merge(query(a, b, lson(x), l, mid),
query(a, b, rson(x), mid + 1, r));
}
} tree;
int n, m;
vector<int> add[N];
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m;
int mx = max(0, n - m);
tree.init(0, 0, m - 1);
for(int i = 0; i < n; i++) {
int l, r; cin >> l >> r; l--, r--;
add[r].push_back(l);
}
int cur_r = 0;
int non = 0;
for(int r = m; r >= 0; r--) {
for(auto l : add[r]) {
if(l >= 0) tree.update(l, 0, 0, m - 1, 1);
else non++;
}
mx = max(mx, tree.dat[0].pref + non - (m - r));
}
cout << mx << '\n';
}
Submission Info
Submission Time |
|
Task |
F - Exhausted? |
User |
vjudge5 |
Language |
C++14 (GCC 5.4.1) |
Score |
1000 |
Code Size |
1984 Byte |
Status |
AC |
Exec Time |
96 ms |
Memory |
14080 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
1000 / 1000 |
Status |
|
|
Set Name |
Test Cases |
Sample |
s1.txt, s2.txt, s3.txt, s4.txt |
All |
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, s1.txt, s2.txt, s3.txt, s4.txt |
Case Name |
Status |
Exec Time |
Memory |
01.txt |
AC |
78 ms |
13312 KB |
02.txt |
AC |
52 ms |
13056 KB |
03.txt |
AC |
96 ms |
14080 KB |
04.txt |
AC |
90 ms |
14080 KB |
05.txt |
AC |
7 ms |
8704 KB |
06.txt |
AC |
66 ms |
13184 KB |
07.txt |
AC |
77 ms |
10624 KB |
08.txt |
AC |
87 ms |
14080 KB |
09.txt |
AC |
76 ms |
10880 KB |
10.txt |
AC |
29 ms |
11904 KB |
11.txt |
AC |
56 ms |
11648 KB |
12.txt |
AC |
42 ms |
11520 KB |
13.txt |
AC |
52 ms |
7552 KB |
14.txt |
AC |
51 ms |
7552 KB |
15.txt |
AC |
56 ms |
11648 KB |
16.txt |
AC |
41 ms |
10240 KB |
17.txt |
AC |
70 ms |
13568 KB |
18.txt |
AC |
70 ms |
13568 KB |
19.txt |
AC |
62 ms |
13184 KB |
20.txt |
AC |
70 ms |
13568 KB |
21.txt |
AC |
18 ms |
11136 KB |
22.txt |
AC |
70 ms |
13568 KB |
23.txt |
AC |
13 ms |
6912 KB |
24.txt |
AC |
71 ms |
13568 KB |
25.txt |
AC |
27 ms |
11640 KB |
26.txt |
AC |
24 ms |
9592 KB |
27.txt |
AC |
28 ms |
11640 KB |
28.txt |
AC |
28 ms |
9592 KB |
29.txt |
AC |
56 ms |
11640 KB |
30.txt |
AC |
56 ms |
11640 KB |
31.txt |
AC |
70 ms |
13568 KB |
32.txt |
AC |
61 ms |
13184 KB |
33.txt |
AC |
72 ms |
13568 KB |
34.txt |
AC |
46 ms |
12544 KB |
35.txt |
AC |
37 ms |
12032 KB |
36.txt |
AC |
70 ms |
13568 KB |
37.txt |
AC |
3 ms |
6400 KB |
38.txt |
AC |
3 ms |
6400 KB |
39.txt |
AC |
3 ms |
6400 KB |
40.txt |
AC |
3 ms |
6400 KB |
41.txt |
AC |
3 ms |
6400 KB |
42.txt |
AC |
3 ms |
6400 KB |
43.txt |
AC |
5 ms |
10496 KB |
44.txt |
AC |
3 ms |
6400 KB |
s1.txt |
AC |
3 ms |
6400 KB |
s2.txt |
AC |
3 ms |
6400 KB |
s3.txt |
AC |
3 ms |
6400 KB |
s4.txt |
AC |
3 ms |
6400 KB |