NC220556. 喝可乐
描述
输入描述
输入的第一行有一个正整数,代表测试资料的组数。
每一组测试资料有三个正整数和
,各一个空白隔开。
输出描述
每组测试数据输出一行,表示最多喝到的可乐瓶数
示例1
输入:
3 10 5 5 11 3 5 20 50 60
输出:
12 15 20
C++(clang++11) 解法, 执行用时: 10ms, 内存消耗: 396K, 提交时间: 2021-04-17 23:57:51
#include<iostream> using namespace std; int main() { int T; cin>>T; while(T--) { int n,a,b; cin>>n>>a>>b; int ans=0; for(int i=0;i<=n;i++) { int x=i,y=n-i; int now=n; while(x>=a||y>=b) { y+=x/a,now+=x/a,x%=a; x+=y/b,now+=y/b,y%=b; } ans=max(ans,now); } cout<<ans<<"\n"; } return 0; }
Python3(3.9) 解法, 执行用时: 925ms, 内存消耗: 6776K, 提交时间: 2021-04-18 12:56:30
for T in range(int(input())): n,a,b=map(int,input().split()) ans=0 for i in range(n+1): temp,x,y=n,i,n-i while x>=a or y>=b: suma=x//a sumb=y//b temp+=suma+sumb x=x%a+sumb y=y%b+suma ans=max(ans,temp) print(ans)