CF1236A题解

题意简述

题目传送门
有 a,b,c 三堆石子,现在有两种方案可以取石子:

  1. 第一堆取一个石子,第二堆取两个石子。
  2. 第二堆取一个石子,第三堆取两个石子。

分析

这题不难,直接模拟即可。因为两种方案都会涉及到第二堆,
所以我们优先考虑第二种方案,这样我们就能通过尽可能少的
次数取第二堆,从而尽可能多的取到石子。
所以我们先用 while 模拟第二种方案,直到不能再取了。然后再模拟第一种方案,也是在不能取的时候结束计算。

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,a,b,c,ans; 
	cin>>n; 
	while(n--){ 
		cin>>a>>b>>c; 
		ans=0; //清零 
		while(1){ //第二种方案优先考虑 
			if(b-1>=0&&c-2>=0) ans+=3,b-=1,c-=2; 
			else break; //不满足条件就退出 
		}
		while(1){ 
			if(a-1>=0&&b-2>=0) ans+=3,a-=1,b-=2; 
			else break; 
		} 
		cout<<ans<<endl; 
	} 
}

完美AC!
这是本人第一篇题解,希望大佬多多支持!

posted @ 2022-02-05 20:11  cycwss  阅读(20)  评论(0)    收藏  举报