为什么不能交
查看原帖
为什么不能交
1071578
yangjunlin3399楼主2025/7/3 15:18
#include<bits/stdc++.h>
using namespace std;
int d,smt,mnt[40],mxt[40],mx,mn;
int main()
{
	cin>>d>>smt;
	for(int i=1;i<=d;i++)
	{
		cin>>mnt[i]>>mxt[i];
		mx+=mxt[i];
		mn+=mnt[i];
	}
	if(mx<smt||mn>smt) cout<<"NO"<<endl;
	else{
		cout<<"YES"<<endl;
		int t=smt-mn;
		for(int i=1;i<=d;i++)
		{
			if(t>=mxt[i]-mnt[i])
			{
				t-=mxt[i]-mnt[i];
				cout<<mxt[i]<<" ";
			}
			else{
				cout<<mnt[i]+t<<" ";
				t=0;
			}
		}
	}
 	return 0;
}

2025/7/3 15:18
加载中...