首页 > 其他 > 详细

Codeforces Round #592 (Div. 2)【C题】{补题ING}

时间:2019-11-09 20:42:20      阅读:80      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 思路:x,y,z肯定不为负数xw+dy=p,直接枚举系数较小的y即可,y的范围:y<w,因为大于w的时候,不如去增加x,这样x+y的和还能保持尽可能小.

 1 /*
 2  
 3 x*w+y*d=p;
 4 x*w+(Kw+y)*d
 5 (x+d)*w+d;
 6 
 7 x+y+z=n;
 8  
 9 */
10 #include<bits/stdc++.h>
11  
12 using namespace std;
13 #define int long long
14 signed main(){
15     int n,p,w,d;cin>>n>>p>>w>>d;
16     for(int y=0;y<=w;y++){
17         int temp=p-y*d;
18         if(temp%w)
19             continue;
20         int x=temp/w;
21         if(x+y<=n&&x>=0&&y>=0&&(n-x-y)>=0){
22             cout<<x<<" "<<y<<" "<<n-x-y;
23             return 0; 
24         }
25     }
26     cout<<"-1";
27     return 0;
28 }

 

Codeforces Round #592 (Div. 2)【C题】{补题ING}

原文:https://www.cnblogs.com/pengge666/p/11827522.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!