また、DOへの生活モンスターのセグメントツリー/フェンウィックツリー更新間隔の値である必要があります
1 の#define HAVE_STRUCT_TIMESPEC 2の#include <ビット/ STDC ++ H> 3 使用して 名前空間STDを、 図4は、 長い 長いプレ[ 200007 ]。 5 INT メイン(){ 6つの IOS :: sync_with_stdio(偽)。 7 cin.tie(NULL)。 8 cout.tie(NULL)。 9 長い 長N、D、。 10 CIN >> N >> D >> 。 11 ベクター<ペア< 長い 長い、長い 長い >> V。 12 のための(のInt I = 1 ; I <= N; ++ I){ 13は ロング ロングX、Yは、 14 CIN >> X Y、 15 ロング ロング Z =(Y- 1)/ A + 1 ; 16 v.push_back ({X、Z}); 17 } 18で 並び替え(v.begin()、v.end()); 19 ロング ロング ANS = 0 ; 20 ロング ロング SUM = 0 ; 21である INT R&LT = 1 ; // ないヒット最近のレンジ 22 のために(int型私は= 0 ;私は<N-; ++ I){ 23は 、一方(R&LT <N - && V [R&LT] 1次回<= V [I] 1次回+ 2 * D) 24 ++ R&LT; 25 プリsum- = [I] ; // 合計ダメージが以前に現在の位置に施された和である 26ことである V [I] .second- = SUM; 27 IF(V [I] .second <= 0 ) 28が 続行; 29 SUM = V + [I] .second ; // 累積損傷 30 プレ[R] = + V [I] .second; // 総ダメージR前回位置クマ 31は ANS = + V [I] .second; 32 } 33 coutの<< 年。 34 リターン 0 。 35 }