NC216024. D博弈与核心能源动力
描述
输入描述
在一行中,给出四个整数,含义如题所述,m(-10000 <= m <= 10000),k(0 <= k <= 10000),g(0 <= g <= 10000),p(1 <= p <= 200)
输出描述
输出一个整数,表示ZWY最多能喝到多少瓶酒。
示例1
输入:
10 4 2 4
输出:
13
说明:
刚开始,ZWY能花8块钱买到2瓶酒,并且用4个空瓶换到2瓶酒,一共4瓶,喝完后剩下4个空瓶与6个瓶盖。示例2
输入:
-10 3 0 1
输出:
2
说明:
C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 404K, 提交时间: 2023-07-24 10:08:28
#include<bits/stdc++.h> using namespace std; int main() { int m,k,g,p,s=0,t=0; cin>>m>>k>>g>>p; if(m/p>0)t=m/p; while(k/2||t||g/4) { k+=t; g+=t; s+=t; t=k/2+g/4; k=k%2; g=g%4; } cout<<s; }
Python3 解法, 执行用时: 61ms, 内存消耗: 7056K, 提交时间: 2021-12-11 00:05:13
m,k,g,p=list(map(int,input().split())) m,r=max(m,0),0 while m>=p or k>=2 or g>=4: r+=(x:=m//p+k//2+g//4) m,k,g=m%p,k%2+x,g%4+x print(r)