涉及知识点:
solution:
- 通过题意可知,本题一共有两个地方要解决
- 第一个就是要修完,第二个是要至少有一半的路是高质量的
- 那么因为好天气和坏天气是可以看做一个周期的,所以需要的总天数至少是一半路的长度/g(这个地方代表起码修高质量路要的天数)*(g+b)
- 然后我们要考虑一半路的长度和g的关系(其实没必要考虑g和b的关系或者g和n的关系),
-
- 发现如果一半路的长度 mod g 为零,那么代表我们多修了一个b天的需要减掉
-
- 发现如果一半路的长度 mod g 不为零,那么代表我们少修了一个大于1小于g的天数,加上即可
std:
#include <cstdio>
#include <algorithm>
#include<iomanip>
#include <iostream>
#include <cmath>
#include <string>
#include <vector>
#include <set>
#include <queue>
#include <cstring>
#include<stack>
#include <cassert>
#include<map>
using namespace std;
typedef long long LL;
LL n, k, m ;
LL i,j,g;
int main()
{
double m ;
int b,n;cin >>n;
for(int i=1;i<=n;i++){
cin >>m>> g>>b;
j = ceil(m/2);
LL sum =0 ;
sum +=j/g*(g+b);
if(j%g==0)sum-=b;
else sum+=j%g;
k = m;
cout<<max(k,sum)<<endl;
}
return 0;
}