提出 #61828225
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N=1e6+10, S=1e6;
struct Segtree{
int d[4*N];
int FL[N*4],FR[N*4];
void pushup(int p){
FL[p]=FL[p*2];
FR[p]=FR[p*2+1];
}
void pushdown(int p) {
if (d[p]) {
FL[p*2]+=d[p],FL[p*2+1]+=d[p];
FR[p*2]+=d[p],FR[p*2+1]+=d[p];
d[p*2]+=d[p],d[p*2+1]+=d[p];
}
d[p]=0;
}
void build(int p,int l, int r) {
if(l==r) {
FR[p]=FL[p]=l;
return;
}
int mid=(l+r)/2;
build(p*2,l,mid),build(p*2+1,mid+1,r);
pushup(p);
}
void update(int p, int l, int r, int L, int R, int x) {
if (L<=l && r<=R) {
d[p]+=x; FL[p]+=x; FR[p]+=x;
return;
}
int mid=(l+r)/2;
pushdown(p);
if (L <= mid) update(p*2,l,mid,L,R,x);
if (R > mid) update(p*2+1,mid+1,r,L,R,x);
pushup(p);
}
int query(int p, int l, int r, int pos) {
if(l==r)return FL[p];
pushdown(p);
int mid=(l+r)/2;
if(pos<=mid)return query(p*2,l,mid,pos);
else return query(p*2+1,mid+1,r,pos);
}
// 找第一个>=val的
int get_l(int p, int l, int r, int val) {
if (l==r) return l;
pushdown(p);
int mid=(l+r)/2;
//左边有
if (FR[p*2]>=val) return get_l(p*2, l, mid, val);
else return get_l(p*2+1, mid+1, r, val);
}
// 找最后一个<=val的
int get_r(int p, int l, int r, int val) {
if (l==r) return l;
pushdown(p);
// cerr<<"GR"<<p<<' '<<l<<' '<<r<<' '<<FL[p*2+1]<<' '<<val<<'\n';
int mid=(l+r)/2;
// 右边第一个就不行了
if (FL[p*2+1]>val) return get_r(p*2, l, mid, val);
else return get_r(p*2+1, mid+1, r, val);
}
};
Segtree T;
int n, a[N];
int main() {
cin>>n;
T.build(1,1,S);
for(int i=1;i<=n;i++){
int l,r;cin>>l>>r;
int L=T.get_l(1,1,S,l);
int R=T.get_r(1,1,S,r);
// cout << "opt"<<L << ' ' << R << '\n';
T.update(1,1,S,L,R,1);
}
int q;cin>>q;
for(int i=1;i<=q;i++) {
int x;
cin>>x;
cout<<T.query(1,1,S,x) << '\n';
}
return 0;
}
提出情報
| 提出日時 |
|
| 問題 |
F - Rated Range |
| ユーザ |
Nicrobott |
| 言語 |
C++ 20 (gcc 12.2) |
| 得点 |
525 |
| コード長 |
2447 Byte |
| 結果 |
AC |
| 実行時間 |
707 ms |
| メモリ |
24152 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
525 / 525 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_00.txt |
AC |
8 ms |
19852 KiB |
| 00_sample_01.txt |
AC |
8 ms |
20184 KiB |
| 00_sample_02.txt |
AC |
9 ms |
20656 KiB |
| 01_test_00.txt |
AC |
13 ms |
23932 KiB |
| 01_test_01.txt |
AC |
12 ms |
23920 KiB |
| 01_test_02.txt |
AC |
11 ms |
23616 KiB |
| 01_test_03.txt |
AC |
10 ms |
22200 KiB |
| 01_test_04.txt |
AC |
407 ms |
24024 KiB |
| 01_test_05.txt |
AC |
707 ms |
24148 KiB |
| 01_test_06.txt |
AC |
425 ms |
24076 KiB |
| 01_test_07.txt |
AC |
705 ms |
24072 KiB |
| 01_test_08.txt |
AC |
486 ms |
24008 KiB |
| 01_test_09.txt |
AC |
703 ms |
24152 KiB |
| 01_test_10.txt |
AC |
333 ms |
24140 KiB |
| 01_test_11.txt |
AC |
697 ms |
24068 KiB |
| 01_test_12.txt |
AC |
491 ms |
24008 KiB |
| 01_test_13.txt |
AC |
691 ms |
23948 KiB |
| 01_test_14.txt |
AC |
322 ms |
24004 KiB |
| 01_test_15.txt |
AC |
701 ms |
24008 KiB |
| 01_test_16.txt |
AC |
62 ms |
24012 KiB |
| 01_test_17.txt |
AC |
696 ms |
24008 KiB |
| 01_test_18.txt |
AC |
427 ms |
24072 KiB |
| 01_test_19.txt |
AC |
688 ms |
23988 KiB |
| 01_test_20.txt |
AC |
529 ms |
24144 KiB |
| 01_test_21.txt |
AC |
544 ms |
24016 KiB |
| 01_test_22.txt |
AC |
534 ms |
22780 KiB |
| 01_test_23.txt |
AC |
528 ms |
22764 KiB |
| 01_test_24.txt |
AC |
630 ms |
24140 KiB |
| 01_test_25.txt |
AC |
636 ms |
24080 KiB |
| 01_test_26.txt |
AC |
634 ms |
24008 KiB |
| 01_test_27.txt |
AC |
633 ms |
23984 KiB |
| 01_test_28.txt |
AC |
9 ms |
19968 KiB |
| 01_test_29.txt |
AC |
9 ms |
20008 KiB |
| 01_test_30.txt |
AC |
9 ms |
19940 KiB |
| 01_test_31.txt |
AC |
9 ms |
20004 KiB |
| 01_test_32.txt |
AC |
9 ms |
20044 KiB |