Submission #1208418

#TimeUsernameProblemLanguageResultExecution timeMemory
1208418emptypringlescanAnts and Sugar (JOI22_sugar)C++17
6 / 100
4083 ms2780 KiB
#include <bits/stdc++.h>
using namespace std;
int32_t main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int q;
	long long l;
	cin >> q >> l;
	vector<pair<long long,long long> > arr[2];
	while(q--){
		int cmd;
		cin >> cmd;
		if(cmd==1){
			long long x,a;
			cin >> x >> a;
			arr[0].push_back({x,a});
		}
		else{
			long long x,a;
			cin >> x >> a;
			arr[1].push_back({x,a});
		}
		if(arr[0].empty()||arr[1].empty()){
			cout << 0 << '\n';
			continue;
		}
		sort(arr[0].begin(),arr[0].end());
		sort(arr[1].begin(),arr[1].end());
		int c1=0,c2=0;
		long long ans=0;
		long long l1=0,l2=0;
		while(c1<(int)arr[0].size()&&c2<(int)arr[1].size()){
			while(c1<(int)arr[0].size()&&c2<(int)arr[1].size()){
				if(arr[0][c1].first<arr[1][c2].first-l) c1++,l1=0;
				else if(arr[1][c2].first<arr[0][c1].first-l) c2++,l2=0;
				else if(arr[0][c1].second-l1<=0) c1++,l1=0;
				else if(arr[1][c2].second-l2<=0) c2++,l2=0;
				else break;
			}
			if(c1>=(int)arr[0].size()||c2>=(int)arr[1].size()) break;
			long long x=min(arr[0][c1].second-l1,arr[1][c2].second-l2);
			ans+=x;
			l1+=x; l2+=x;
		}
		cout << ans << '\n';
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...