#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |