求助
  • 板块P7107 天选之人
  • 楼主MKqwq_
  • 当前回复0
  • 已保存回复0
  • 发布时间2020/11/29 15:43
  • 上次更新2023/11/5 07:05:36
查看原帖
求助
119618
MKqwq_楼主2020/11/29 15:43
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,k,p,l,r,md,ans[100001],sm,mx;
bool ok(ll x){
	memset(ans,0,sizeof(ans)),sm=0;
	for(int i=1;i<=p;i++) ans[i]=x,sm+=x;
	if(sm>k) return 0;
	sm=k-sm,mx=x-1;
	if(sm==0) return 1;
	for(int i=p+1;i<=n;i++)
		if(sm<=mx){
			ans[i]=sm;
			return 1;
		}
		else ans[i]=mx,sm-=mx;
	return 0;
}
int main(){
	cin>>n>>m>>k>>p;
	r=min(ll(floor(k*1./p)),m);
	if(ok(r)){
		cout<<"YES"<<endl;
		for(int i=1;i<=n;i++) cout<<ans[i]<<" "<<m-ans[i]<<endl;
	}
	else cout<<"NO";
	return 0;
}	

WA了2个点

2020/11/29 15:43
加载中...