0分求助!
查看原帖
0分求助!
331557
ISTIA楼主2022/10/18 11:17
#include<bits/stdc++.h>
using namespace std;
long long int n,d[1000001],m[1000001],k,nk[1000001],ans=0;
int main()
{
	
	cin>>n,k;
//	memset(nk,k,10001);
	
	for(int i=1;i<=n;i++)
	{
		long long int temp;
		cin>>d[i]>>temp;
		m[i]+=temp;
		nk[i]=k;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(m[i]<=nk[d[i]])
			{
				nk[d[i]]-=m[i];
				ans+=m[i];
			}
			else 
			{
				m[i]-=nk[d[i]];
				ans+=nk[d[i]];
				nk[d[i]]=0;
				if(m[i]<=nk[d[i]+1])
				{
					nk[d[i]+1]-=m[i];
					ans+=m[i];
				}
				else
				{
					m[i]-=nk[d[i]+1];
					ans+=nk[d[i]+1];
					nk[d[i]+1]=0;
				}
			}
		}
	}
	cout<<ans;
	return 0;
}
2022/10/18 11:17
加载中...