求助!最后一个点WA了
查看原帖
求助!最后一个点WA了
1073732
hlz2012楼主2024/4/14 22:05
#include<bits/stdc++.h>
using namespace std;
struct node{
	long long t,z;
}a[30000005];
long long n,k,c[30000005],sum;
int cmp(node x,node y){
	return x.t<y.t;
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i].t>>a[i].z;
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=a[n].t+3;i++) c[i]=k;
	for(int i=1;i<=n;i++){
		if(c[a[i].t]>=a[i].z){
			sum+=a[i].z;
			c[a[i].t]-=a[i].z;
		}
		else if(c[a[i].t]+c[a[i].t+1]>=a[i].z){
			c[a[i].t+1]-=(a[i].z-c[a[i].t]);
			c[a[i].t]=0;
			sum+=a[i].z;
		}
		else{
			sum+=(c[a[i].t]+c[a[i].t+1]);
			c[a[i].t]=0;
			c[a[i].t+1]=0;
		}
	}
	cout<<sum;
}
2024/4/14 22:05
加载中...