Submission #2074672


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

class RangeBIT {
	public:
	vector<long long> dat; int size_ = 1;
	
	void init(int size__){
		while(size_<=size__) size_*=2;
		dat.resize(size_*2, 0);
	}
	void add_(int l,int r,long long x,long long a,long long b,long long c){
		if(r<=a || b<=l) return;
		if(l<=a && b<=r){
			dat[c]+=x;return;
		}
		add_(l,r,x,a,(a+b)/2,c*2);
		add_(l,r,x,(a+b)/2,b,c*2+1);
	}
	void add(int l,int r,long long x){
		add_(l,r,x,0,size_,1);
	}
	long long Get(long long pos){
		pos+=size_;long long sum=0;
		while(pos>=1){
			sum+=dat[pos];pos/=2;
		}
		return sum;
	}
};

RangeBIT X; long long N,Q,t,p,ss; vector<long long>x[200009];

vector<tuple<long long,long long,long long>>solve(int pos){
	x[pos].push_back(0);x[pos].push_back(Q);
	sort(x[pos].begin(), x[pos].end());
	vector<tuple<long long,long long,long long>>A; long long sz = x[pos].size() - 2; sz *= -1;
	for(int i=0;i<x[pos].size()-1;i++){
		if(x[pos][i] != x[pos][i+1]) A.push_back(make_tuple(x[pos][i]+1, x[pos][i+1], sz));
		sz+=2;
	}
	return A;
}

void zero(int l,int r){
	while(l<r){
		long long V = X.Get(l);
		long long LL=l,RR=r,MM,maxn=r;
		for(int i=0;i<20;i++){
			MM=(LL+RR)/2;
			long long W = X.Get(MM);
			if(W!=V){maxn=min(maxn,MM);RR=MM;}
			else{LL=MM;}
		}
		X.add(l,maxn,-V);
		l=maxn;
	}
}

int main() {
	cin>>N>>Q;X.init(Q+2);
	for(int i=1;i<=N;i++){
		cin>>t>>p;ss+=p;
		x[t].push_back(p);
	}
	for(int i=1;i<=100000;i++){
		vector<tuple<long long,long long,long long>>L=solve(i);
		for(int j=0;j<L.size();j++){
			int l=get<0>(L[j]),r=get<1>(L[j]),p=get<2>(L[j]);
			X.add(l,r+1,p);
			long long J = X.Get(r);
			if(J>0){
				long long LL=0,RR=r+1,MM,maxn=r+1;
				for(int k=0;k<20;k++){
					MM=(LL+RR)/2;
					long long J2=X.Get(MM);
					if(J2>0){maxn=min(maxn,MM);RR=MM;}
					else{LL=MM;}
				}
				zero(maxn,r+1);
			}
		}
	}
	long long rr=ss;
	for(int i=1;i<=Q;i++){
		rr+=X.Get(i);
	}
	cout<<rr<<endl;
	return 0;
}

Submission Info

Submission Time
Task E - 花火
User E869120
Language C++14 (GCC 5.4.1)
Score 160
Code Size 2027 Byte
Status AC
Exec Time 202 ms
Memory 14704 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 130 / 130
Status
AC × 3
AC × 45
AC × 95
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt, subtask1_35.txt, subtask1_36.txt, subtask1_37.txt, subtask1_38.txt, subtask1_39.txt, subtask1_40.txt, subtask1_41.txt, subtask1_42.txt
Subtask2 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt, subtask1_35.txt, subtask1_36.txt, subtask1_37.txt, subtask1_38.txt, subtask1_39.txt, subtask1_40.txt, subtask1_41.txt, subtask1_42.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt, subtask2_41.txt, subtask2_42.txt, subtask2_43.txt, subtask2_44.txt, subtask2_45.txt, subtask2_46.txt, subtask2_47.txt, subtask2_48.txt, subtask2_49.txt, subtask2_50.txt
Case Name Status Exec Time Memory
sample_01.txt AC 21 ms 8064 KB
sample_02.txt AC 21 ms 8064 KB
sample_03.txt AC 22 ms 8064 KB
subtask1_01.txt AC 31 ms 8064 KB
subtask1_02.txt AC 31 ms 8064 KB
subtask1_03.txt AC 31 ms 8064 KB
subtask1_04.txt AC 31 ms 8064 KB
subtask1_05.txt AC 20 ms 8064 KB
subtask1_06.txt AC 21 ms 8064 KB
subtask1_07.txt AC 24 ms 8064 KB
subtask1_08.txt AC 25 ms 8064 KB
subtask1_09.txt AC 29 ms 8064 KB
subtask1_10.txt AC 30 ms 8064 KB
subtask1_11.txt AC 30 ms 8064 KB
subtask1_12.txt AC 30 ms 8064 KB
subtask1_13.txt AC 20 ms 8064 KB
subtask1_14.txt AC 21 ms 8064 KB
subtask1_15.txt AC 23 ms 8064 KB
subtask1_16.txt AC 25 ms 8064 KB
subtask1_17.txt AC 30 ms 8064 KB
subtask1_18.txt AC 30 ms 8064 KB
subtask1_19.txt AC 30 ms 8064 KB
subtask1_20.txt AC 31 ms 8064 KB
subtask1_21.txt AC 29 ms 8064 KB
subtask1_22.txt AC 30 ms 8064 KB
subtask1_23.txt AC 30 ms 8064 KB
subtask1_24.txt AC 30 ms 8064 KB
subtask1_25.txt AC 23 ms 8064 KB
subtask1_26.txt AC 25 ms 8064 KB
subtask1_27.txt AC 31 ms 8064 KB
subtask1_28.txt AC 29 ms 8064 KB
subtask1_29.txt AC 19 ms 8064 KB
subtask1_30.txt AC 20 ms 8064 KB
subtask1_31.txt AC 30 ms 8064 KB
subtask1_32.txt AC 31 ms 8064 KB
subtask1_33.txt AC 30 ms 8064 KB
subtask1_34.txt AC 29 ms 8064 KB
subtask1_35.txt AC 29 ms 8064 KB
subtask1_36.txt AC 30 ms 8064 KB
subtask1_37.txt AC 19 ms 8064 KB
subtask1_38.txt AC 28 ms 8064 KB
subtask1_39.txt AC 20 ms 8064 KB
subtask1_40.txt AC 28 ms 8064 KB
subtask1_41.txt AC 19 ms 8064 KB
subtask1_42.txt AC 29 ms 8064 KB
subtask2_01.txt AC 200 ms 11520 KB
subtask2_02.txt AC 200 ms 11520 KB
subtask2_03.txt AC 202 ms 11520 KB
subtask2_04.txt AC 198 ms 11520 KB
subtask2_05.txt AC 198 ms 11520 KB
subtask2_06.txt AC 160 ms 11136 KB
subtask2_07.txt AC 119 ms 9856 KB
subtask2_08.txt AC 84 ms 9472 KB
subtask2_09.txt AC 70 ms 9600 KB
subtask2_10.txt AC 84 ms 9600 KB
subtask2_11.txt AC 99 ms 9472 KB
subtask2_12.txt AC 114 ms 9472 KB
subtask2_13.txt AC 166 ms 9728 KB
subtask2_14.txt AC 110 ms 10920 KB
subtask2_15.txt AC 126 ms 10900 KB
subtask2_16.txt AC 135 ms 10984 KB
subtask2_17.txt AC 142 ms 11008 KB
subtask2_18.txt AC 167 ms 11264 KB
subtask2_19.txt AC 52 ms 8820 KB
subtask2_20.txt AC 52 ms 8828 KB
subtask2_21.txt AC 58 ms 8960 KB
subtask2_22.txt AC 64 ms 8960 KB
subtask2_23.txt AC 134 ms 9344 KB
subtask2_24.txt AC 165 ms 11648 KB
subtask2_25.txt AC 171 ms 11520 KB
subtask2_26.txt AC 176 ms 11520 KB
subtask2_27.txt AC 179 ms 11520 KB
subtask2_28.txt AC 188 ms 11520 KB
subtask2_29.txt AC 81 ms 10880 KB
subtask2_30.txt AC 107 ms 11264 KB
subtask2_31.txt AC 136 ms 11264 KB
subtask2_32.txt AC 175 ms 11520 KB
subtask2_33.txt AC 184 ms 11520 KB
subtask2_34.txt AC 126 ms 11264 KB
subtask2_35.txt AC 91 ms 9600 KB
subtask2_36.txt AC 103 ms 9472 KB
subtask2_37.txt AC 155 ms 9728 KB
subtask2_38.txt AC 191 ms 11776 KB
subtask2_39.txt AC 125 ms 12656 KB
subtask2_40.txt AC 52 ms 8820 KB
subtask2_41.txt AC 69 ms 9728 KB
subtask2_42.txt AC 168 ms 11776 KB
subtask2_43.txt AC 190 ms 11776 KB
subtask2_44.txt AC 142 ms 14704 KB
subtask2_45.txt AC 94 ms 11776 KB
subtask2_46.txt AC 76 ms 10868 KB
subtask2_47.txt AC 128 ms 11776 KB
subtask2_48.txt AC 36 ms 10112 KB
subtask2_49.txt AC 19 ms 8064 KB
subtask2_50.txt AC 36 ms 10112 KB