Submission #2074707


Source Code Expand

#include<deque>
#include<queue>
#include<vector>
#include<algorithm>
#include<iostream>
#include<set>
#include<cmath>
#include<tuple>
#include<string>
#include<chrono>
#include<functional>
#include<iterator>
#include<random>
#include<unordered_set>
#include<unordered_map>
#include<array>
#include<map>
#include<bitset>
#include<iomanip>
#include<list>
#include <numeric>
using namespace std;
typedef unsigned long long int ulint;
typedef long long int llint;
typedef long double lldo;
#define mp make_pair
#define mt make_tuple
#define pub push_back
#define puf push_front
#define pob pop_back
#define pof pop_front
#define fir first
#define sec second
#define res resize
#define ins insert
#define era erase
#define RE return 0
//ios::sync_with_stdio(false);
//std::cin.tie(0);
//<< setprecision(20)
const int mod=(int)1e9+7;
const llint big=(llint)2.19e15+1;
const long double pai=3.141592653589793238462643383279502884197;
const long double ena=2.71828182845904523536;
const long double eps=1e-7;
template <class T,class U>bool mineq(T& a,U b){if(a>b){a=b;return true;}return false;}
template <class T,class U>bool maxeq(T& a,U b){if(a<b){a=b;return true;}return false;}
template <class T> void soun(T& ar)
{sort(ar.begin(),ar.end());ar.erase(unique(ar.begin(),ar.end()),ar.end());}
llint gcd(llint a,llint b){if(a%b==0){return b;}else{return gcd(b,a%b);}}
llint lcm(llint a,llint b){return a/gcd(a,b) *b;}
template<class T,class U> auto LB(T& ve,U in){return lower_bound(ve.begin(),ve.end(),in);}
template<class T,class U> auto UB(T& ve,U in){return upper_bound(ve.begin(),ve.end(),in);}
template<class T,class U> auto LBI(T& ve,U in){return LB(ve,in)-ve.begin();}
template<class T,class U> auto UBI(T& ve,U in){return UB(ve,in)-ve.begin();}
template<class T> void SO(T& ve){sort(ve.begin(),ve.end());}
template<class T> void REV(T& ve){reverse(ve.begin(),ve.end());}
class seg{
public:
	//時間を持つセグ木
	//これ以降の花火において、その花火がニワンゴ君の家に近い時動きたさ+1,逆なら動きたさ-1
	//これを、すべての時間において求める
	//自分未満の動きたさをどうこうする
	//最大の動きたさの地点で動く
	//最大の動きたさの地点は単調増加
	//LET's 実装
	vector<int>ugo;//動きたさ
	vector<int>sai;//その範囲の動きたさの最大
	seg(void){ugo.res(262144);sai.res(262144);}
	int ask(void){
		int bas=1;
		while(bas<131072){
			bas*=2;
			if(sai[bas]<sai[bas+1]){bas++;}
		}
		return bas-131072;
	}
	void cha(int bas,int hen){
		bas+=131072;
		while(bas>0){
			if(bas%2==1){ugo[bas-1]+=hen;sai[bas-1]+=hen;}
			bas/=2;sai[bas]=max(sai[bas+bas],sai[bas+bas+1])+ugo[bas];
		}
	}
	int deb(int bas){
		bas+=131072;int ans=0;
		while(bas>0){ans+=ugo[bas];bas/=2;}
		return ans;
	}
};
int main(void){
	int i,n,L;cin>>n>>L;
	vector<pair<int,int>>hnb(n+1);
	vector<int>ido(L+1);//それぞれの地点をいつ通過した?????🐣
	for(i=0;i<n;i++){
		int t,p;cin>>t>>p;
		hnb[i]=mp(p,t);
	}
	hnb[n]=mp(mod,0);//晩兵 実際には打ちあがらない
	SO(hnb);
	seg ki;
	for(i=0;i<n;i++){ki.cha(hnb[i].sec,1);}
	int j=0,gen=0;
	for(i=0;i<L;i++){
		//cerr<<"dr";
		while(hnb[j].fir<=i){
			ki.cha(hnb[j].sec,-2);
			j++;
		}
		maxeq(gen,ki.ask());
		ido[i]=gen;
		//cerr<<"debag i="<<i;
		//cerr<<"ki.ask="<<ki.ask()<<endl;
		//for(int k=0;k<=10;k++){cerr<<ki.deb(k)<<" ";}cerr<<endl;
	}
	//cerr<<"de"<<endl;
	ido[L]=100000;
	vector<int> doco(100002,L);//いつ、どこにいるの??
	int itu=0;
	for(i=0;i<L;i++){
		//cerr<<"ido["<<i<<"]="<<ido[i]<<endl;
		while(itu<=ido[i]){doco[itu]=i;itu++;}
	}
	//for(i=0;i<12;i++){cerr<<"itu["<<i<<"]="<<doco[i]<<endl;}
	llint ans=0;
	for(i=0;i<n;i++){ans+=abs(doco[hnb[i].sec]-hnb[i].fir);}
	cout<<ans<<endl;
	RE;
}

Submission Info

Submission Time
Task E - 花火
User WA_TLE
Language C++14 (Clang 3.8.0)
Score 160
Code Size 3896 Byte
Status AC
Exec Time 192 ms
Memory 3840 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 2 ms 2688 KB
sample_02.txt AC 2 ms 2688 KB
sample_03.txt AC 2 ms 2688 KB
subtask1_01.txt AC 6 ms 2688 KB
subtask1_02.txt AC 5 ms 2688 KB
subtask1_03.txt AC 6 ms 2688 KB
subtask1_04.txt AC 6 ms 2688 KB
subtask1_05.txt AC 5 ms 2688 KB
subtask1_06.txt AC 5 ms 2688 KB
subtask1_07.txt AC 5 ms 2688 KB
subtask1_08.txt AC 5 ms 2688 KB
subtask1_09.txt AC 5 ms 2688 KB
subtask1_10.txt AC 5 ms 2688 KB
subtask1_11.txt AC 5 ms 2688 KB
subtask1_12.txt AC 5 ms 2688 KB
subtask1_13.txt AC 4 ms 2688 KB
subtask1_14.txt AC 4 ms 2688 KB
subtask1_15.txt AC 5 ms 2688 KB
subtask1_16.txt AC 5 ms 2688 KB
subtask1_17.txt AC 5 ms 2688 KB
subtask1_18.txt AC 5 ms 2688 KB
subtask1_19.txt AC 5 ms 2688 KB
subtask1_20.txt AC 5 ms 2688 KB
subtask1_21.txt AC 5 ms 2688 KB
subtask1_22.txt AC 5 ms 2688 KB
subtask1_23.txt AC 5 ms 2688 KB
subtask1_24.txt AC 5 ms 2688 KB
subtask1_25.txt AC 5 ms 2688 KB
subtask1_26.txt AC 5 ms 2688 KB
subtask1_27.txt AC 5 ms 2688 KB
subtask1_28.txt AC 5 ms 2688 KB
subtask1_29.txt AC 5 ms 2688 KB
subtask1_30.txt AC 5 ms 2688 KB
subtask1_31.txt AC 5 ms 2688 KB
subtask1_32.txt AC 5 ms 2688 KB
subtask1_33.txt AC 5 ms 2688 KB
subtask1_34.txt AC 5 ms 2688 KB
subtask1_35.txt AC 5 ms 2688 KB
subtask1_36.txt AC 5 ms 2688 KB
subtask1_37.txt AC 2 ms 2688 KB
subtask1_38.txt AC 2 ms 2688 KB
subtask1_39.txt AC 2 ms 2688 KB
subtask1_40.txt AC 2 ms 2688 KB
subtask1_41.txt AC 2 ms 2688 KB
subtask1_42.txt AC 2 ms 2688 KB
subtask2_01.txt AC 191 ms 3840 KB
subtask2_02.txt AC 191 ms 3840 KB
subtask2_03.txt AC 192 ms 3840 KB
subtask2_04.txt AC 191 ms 3840 KB
subtask2_05.txt AC 191 ms 3840 KB
subtask2_06.txt AC 149 ms 3584 KB
subtask2_07.txt AC 106 ms 3328 KB
subtask2_08.txt AC 64 ms 3072 KB
subtask2_09.txt AC 144 ms 3456 KB
subtask2_10.txt AC 151 ms 3456 KB
subtask2_11.txt AC 157 ms 3456 KB
subtask2_12.txt AC 163 ms 3456 KB
subtask2_13.txt AC 182 ms 3584 KB
subtask2_14.txt AC 144 ms 3840 KB
subtask2_15.txt AC 149 ms 3840 KB
subtask2_16.txt AC 155 ms 3840 KB
subtask2_17.txt AC 160 ms 3840 KB
subtask2_18.txt AC 180 ms 3840 KB
subtask2_19.txt AC 107 ms 3456 KB
subtask2_20.txt AC 114 ms 3456 KB
subtask2_21.txt AC 119 ms 3456 KB
subtask2_22.txt AC 128 ms 3456 KB
subtask2_23.txt AC 156 ms 3456 KB
subtask2_24.txt AC 178 ms 3840 KB
subtask2_25.txt AC 179 ms 3840 KB
subtask2_26.txt AC 180 ms 3840 KB
subtask2_27.txt AC 181 ms 3840 KB
subtask2_28.txt AC 187 ms 3840 KB
subtask2_29.txt AC 143 ms 3840 KB
subtask2_30.txt AC 156 ms 3840 KB
subtask2_31.txt AC 161 ms 3840 KB
subtask2_32.txt AC 175 ms 3840 KB
subtask2_33.txt AC 184 ms 3840 KB
subtask2_34.txt AC 158 ms 3840 KB
subtask2_35.txt AC 150 ms 3456 KB
subtask2_36.txt AC 158 ms 3456 KB
subtask2_37.txt AC 173 ms 3584 KB
subtask2_38.txt AC 176 ms 3840 KB
subtask2_39.txt AC 143 ms 3840 KB
subtask2_40.txt AC 111 ms 3456 KB
subtask2_41.txt AC 142 ms 3456 KB
subtask2_42.txt AC 154 ms 3840 KB
subtask2_43.txt AC 177 ms 3840 KB
subtask2_44.txt AC 175 ms 3840 KB
subtask2_45.txt AC 161 ms 3840 KB
subtask2_46.txt AC 126 ms 3840 KB
subtask2_47.txt AC 161 ms 3840 KB
subtask2_48.txt AC 4 ms 3072 KB
subtask2_49.txt AC 2 ms 2688 KB
subtask2_50.txt AC 4 ms 3072 KB