Submission #1419169
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> P;
const int MAX_N = (1 << 21) - 1;
const int inf = numeric_limits<int>::max();
ll seg_add[MAX_N];
ll seg_max[MAX_N];
// call init(0,0,n) to init
// node k => [l,r)
void init(int k,int l,int r){
if(r - l == 1){
seg_add[k] = 0; // init leaf
seg_max[k] = 0;
}else{
int chl = k*2+1;
int chr = k*2+2;
seg_add[k] = 0; // init internal-node
seg_max[k] = 0;
init(chl, l, (l+r)/2);
init(chr, (l+r)/2, r);
}
}
// call add(a,b,x,0,0,n) to add
// node k => [l,r)
void add(int a,int b,int x,int k,int l, int r){
// not cross
if(r <= a || b <= l)return;
else if(a <= l && r <= b){
// [a,b) contain [l,r)
seg_add[k] += x;
} else{
// otherwise
int chl = k*2+1;
int chr = k*2+2;
add(a,b,x,chl,l,(l+r)/2);
add(a,b,x,chr,(l+r)/2,r);
seg_max[k] = max(seg_max[chl] + seg_add[chl],
seg_max[chr] + seg_add[chr]);
}
}
// call find(a,b,0,0,n) to find max-value in [a,b)
// node k => [l,r)
ll find(int a,int b,int k,int l,int r){
if(r <= a || b <= l) return 0;
else if(a <= l && r <= b){
// [a,b) contain [l,r)
return seg_max[k] + seg_add[k];
} else{
// otherwise
int chl = k*2+1;
int chr = k*2+2;
int vl = find(a,b,chl,l,(l+r)/2);
int vr = find(a,b,chr,(l+r)/2,r);
return max(vl,vr) + seg_add[k];
}
}
int main(void){
int n;
vector< P > d;
int upbound = 100010;
cin >> n;
for(int i = 0;i < n;++i){
int s,t;
cin >> s >> t;
d.push_back(P(s,t));
}
for(int i = 1;i < n;++i){
add(d[i].first,d[i].second,1,0,0,upbound);
}
ll res = find(0,upbound,0,0,upbound);
for(int i = 1;i < n;++i){
add(d[i-1].first,d[i-1].second,1,0,0,upbound);
add(d[i].first,d[i].second,-1,0,0,upbound);
res = min(res,find(0,upbound,0,0,upbound));
}
cout << res << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
D - 足ゲームII |
User |
Ashurnasirpal |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2002 Byte |
Status |
AC |
Exec Time |
174 ms |
Memory |
6260 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
100 / 100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample-01.txt, sample-02.txt, sample-03.txt |
All |
sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, sample-01.txt, sample-02.txt, sample-03.txt |
Case Name |
Status |
Exec Time |
Memory |
01-01.txt |
AC |
2 ms |
2304 KB |
01-02.txt |
AC |
2 ms |
2432 KB |
01-03.txt |
AC |
2 ms |
2560 KB |
01-04.txt |
AC |
4 ms |
5376 KB |
01-05.txt |
AC |
173 ms |
6260 KB |
01-06.txt |
AC |
173 ms |
6260 KB |
01-07.txt |
AC |
172 ms |
6260 KB |
01-08.txt |
AC |
174 ms |
6260 KB |
01-09.txt |
AC |
174 ms |
6260 KB |
01-10.txt |
AC |
2 ms |
2944 KB |
01-11.txt |
AC |
173 ms |
6260 KB |
01-12.txt |
AC |
172 ms |
6260 KB |
01-13.txt |
AC |
172 ms |
6260 KB |
01-14.txt |
AC |
172 ms |
6260 KB |
01-15.txt |
AC |
6 ms |
5376 KB |
01-16.txt |
AC |
173 ms |
6260 KB |
01-17.txt |
AC |
173 ms |
6260 KB |
01-18.txt |
AC |
172 ms |
6260 KB |
01-19.txt |
AC |
173 ms |
6260 KB |
01-20.txt |
AC |
6 ms |
5376 KB |
01-21.txt |
AC |
170 ms |
6260 KB |
01-22.txt |
AC |
172 ms |
6260 KB |
01-23.txt |
AC |
171 ms |
6260 KB |
01-24.txt |
AC |
152 ms |
3188 KB |
01-25.txt |
AC |
2 ms |
2304 KB |
01-26.txt |
AC |
2 ms |
2304 KB |
01-27.txt |
AC |
122 ms |
6260 KB |
01-28.txt |
AC |
124 ms |
6260 KB |
sample-01.txt |
AC |
2 ms |
2304 KB |
sample-02.txt |
AC |
2 ms |
2304 KB |
sample-03.txt |
AC |
2 ms |
4352 KB |