求助,菜鸡连一道橙题都调不出来了
  • 板块P7107 天选之人
  • 楼主Miraik
  • 当前回复6
  • 已保存回复6
  • 发布时间2020/12/1 11:40
  • 上次更新2023/11/5 06:59:26
查看原帖
求助,菜鸡连一道橙题都调不出来了
236862
Miraik楼主2020/12/1 11:40

RT,有几个点WA了,调了半天没调出来,貌似是无解的情况我找到了解,求助/kk

思路就是直接枚举每一种最大值,找到合理解就输出,感觉没问题啊QwQ

提交记录

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read(){
	ll x=0;int f=1;char c=getchar();
	while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
	while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+(c^48);c=getchar();}
	return x*f;
}ll n,m,p,k;
int main(){
	n=read(),m=read(),k=read(),p=read();
	if(k==0){
		if(p==n){puts("YES");for(int i=1;i<=n;i++)printf("0 %lld\n",m);}
		else puts("NO");
		return 0;
	} 
	for(ll i=1;i*p<=k;i++){
		if(i*p+(n-p)*(i-1)>=k){
			puts("YES");
			for(ll j=1;j<=p;j++)printf("%lld %lld\n",i,m-i);
			k-=i*p;
			for(ll j=p+1;j<=n;j++)
			    if(k>=i-1)printf("%lld %lld\n",i-1,m-i+1),k-=i-1;
			    else printf("%lld %lld\n",k,m-k),k=0;
			return 0;
		}
	}puts("NO");
	return 0;
}

2020/12/1 11:40
加载中...