团日活动"/>
团日活动
链接:
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
华华和班里的同学共N人一起去校外进行团日活动。到了晚上回家的时候,遇到一处独木桥要过,为了安全起见,华华提议一次只让两名同学过独木桥,已知队伍中n名女生过桥都比较快,单独过桥只需要1分钟。m名男生因为体重较重,过桥的时间比较慢,每名男生单独沟过桥分别需要1,2,3,4……m分钟的时间来过桥。当两个人同时过桥时,他们的过桥时间为较慢的那一名同学所需要的时间。问,所有同学都过完独木桥所需要的最短时间是多少。
输入描述:
多组输入,第一行输入数据组的数目T(T<=1000)
第二行输入团队总人数N,和男生的人数n
(N<=1e9,m<N,n<N,数据保证团队中至少有1名男生或者1名女生)
输出描述:
每一行输出所有人过桥所需要的最短总时间。
示例1
输入
复制4 10 5 20 16 31 15 41 20
4 10 5 20 16 31 15 41 20
输出
复制11 74 72 121
11 74 72 121
示例2
输入
复制1 1000000000 999999998
1 1000000000 999999998
输出
复制249999999500000001
249999999500000001
说明
亿 van ♂ dark 军
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
using namespace std;typedef long long ll;int main() {ios::sync_with_stdio(false);ll n;cin>>n;while(n--) {ll N,n;cin>>N>>n;ll m=N-n;ll cnt=0;if(m%2==0) {cnt+=m/2;if(n%2==1) {cnt++;} }else {cnt+=m/2+1;}if(n%2==1) {cnt+=(n-1)*(n+3)/4;}else {cnt+=(n*n+2*n)/4;}cout<<cnt<<endl;} return 0;
}
更多推荐
团日活动
发布评论