50分求助!
查看原帖
50分求助!
465055
1004779564bzbjj楼主2022/10/16 16:45
#include<bits/stdc++.h>
using namespace std;
int xxs[524288];
int main(){
	int n,k;cin>>n>>k;
	long long tnt=0;
	for(int i=1;i<=n;i++){
		int d,z;cin>>d>>z;
		xxs[d]+=z;
		tnt+=z;
	}
	for(int i=1;i<=n+2;i++){
		//cout<<xxs[i]<<"  ";
		if(xxs[i-1]>k)xxs[i-1]-=k;//先完成昨天的 
		else{
			int sy=k;sy-=xxs[i-1];//干完昨天的,还剩多少? 
			xxs[i-1]=0;//昨天的已经被干好了 
			xxs[i]=max(xxs[i]-sy,0);//计算出还剩多少给明天干 
		} 
		//tnt+=min(k,xxs[i-1]+xxs[i]-k);
//		int sy=k-xxs[i-1];//剩下的能力 
//		if(sy<0)xxs[i-1]-=k;//昨天的都打不完 h
//		else xxs[i-1]-=
		
	}
	//cout<<"<<总任务"<<endl;
	long long h=0; 
	for(int i=1;i<=n+2;i++){
		//cout<<xxs[i]<<"   ";
		h+=xxs[i];
	}
	cout<</*"<<没干完的"<<endl<<tnt<<endl<<*/tnt-h;
	
	return 0;
} 

2 3 4 8 9 WA了qwq

2022/10/16 16:45
加载中...