zzuli 20级第八次周赛 2753: 银灰的有趣(划掉)实验

题目描述

周末到了,在泰拉世界的一家医药公司罗德岛里,大多数干员都去放松了,但是作为喀兰贸易公司董事长————银灰,并没有休息,因为他正在进行一项有趣(划掉)的实验:观察源石虫在不同温度下的特性。
现在,有两只源石虫处于两间不同的房间,初始温度为x度和y度,现在,银灰有两种操作可以进行。
1.花费a秒,银灰使其中一个房间的温度上升或下降1度,并记录数据。例如,初始状态x=5,y=0,进行该项操作后可以任意选择如下四种状态之一:
x=4,y=0
x=6,y=0
x=5,y=1
x=5,y=-1
2.花费b秒,银灰和他的本体————丹增,分别使两个房间的温度同时上升或下降1度,并记录数据。例如,初始状态x=5,y=0,进行该项操作后可以任意选择如下两种状态之一:
x=6,y=1
x=4,y=-1
当两个房间温度都为0度时,实验结束。银灰想要尽快完成实验,因此他找到了你,你能帮助他得到该项实验最少在多少秒后结束么?
众所周知,泰拉世界的温度没有上限和下限。

输入

T(T <= 100)测试数据的组数。
每个测试数据第一行包含两个整数x和y(0 <= x,y <= 10^9)。
每个测试数据第二行包含两个整数a和b(0 <= a,b <= 10^9)。

输出

对于每个测试数据,输出一行包括一个整数————银灰最少花费多少秒才能完成实验。

样例输入

2
4 1
500 600
0 0
30 40

样例输出

2100
0

思路很简单,注意数据范围, 要用long long

#include<bits/stdc++.h>
using namespace std;

int main(){
	int t, x, y, b, a;
	long long ans = 0;
	cin >> t;
	while(t--){
		ans = 0;
		cin >> x >> y;
		cin >> a >> b;
		
		if(2*a <= b){
			ans = 1L* (x+y) * a;
		}else{
			ans = 1L * min(x, y) * b;
			ans = ans + (1L * abs(x-y) * a );
		}
		cout << ans << endl;
	}
} 
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值