食物分配

链接:https://ac.nowcoder.com/acm/contest/2720/B
来源:牛客网
 

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

众所周知,ICPC是一项团队赛事,需要三人合力协作完成。比赛的主办方会向参赛选手发放参赛服和食物,为了有备无患,准备的食物总是比参赛选手的总数要多一些。
假设你是一名ICPC教练,现在正带队参加一场ICPC区域赛。因为你们是最后一支注册的队伍而准备的食物还有剩余,因此你的队伍得到了4份食物(教练的食物是单独计算的)。因为工作人员的疏忽,每一份食物的分量不是均等的。如果恰好每人分到一份食物,那么没有人会抱怨。但现在多出了一份食物,所以你的队员希望每个人分到的食物分量是均等的。
一份食物只能被分给一个人,同时为了节约粮食,你不能浪费食物。如果没有方法把这四份食物分给三名队员并不使队员们产生抱怨,你只能将这份食物捐赠给慈善机构。
请判断是否存在一种方法可以将四份食物分给三名队员,每人获得的食物分量相等。

输入描述:

第一行一个整数T(1≤T≤100)T(1\le T \le 100)T(1≤T≤100),表示数据的组数。
接下来一共T行,第i+1(1≤i≤T)i+1(1 \le i \le T)i+1(1≤i≤T)行表示第i组数据,每行四个整数A,B,C,D(1≤A,B,C,D≤20000)A,B,C,D(1 \le A,B,C,D \le 20000)A,B,C,D(1≤A,B,C,D≤20000),分别表示四份食物的分量。

输出描述:

输出T行,第i行对应输入的第i组数据,每行一个整数。如果能将四份食物分给三个人且每人得到的食物分量相同,则输出每人得到的食物的分量。否则输出-1。

示例1

输入

复制

2
1 2 3 3
1 1 3 3

输出

复制

3
-1

说明

对于第一组数据,一名队员可以分到分量为1和分量为2的食物,另外两名队员则分到分量为3的食物。
对于第二组数据,没有一种划分可以使得三名队员获得的食物分量相同。
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string.h>
#include <string>
#include <set>
#include <list>
#include <map>
#include <queue>
#include <stack>
using namespace std;

typedef long long ll;

bool cmp(int j, int k) {
	return j > k;
}

int main(){
	
	ios::sync_with_stdio(false);
	
	int m;
	cin>>m;
	
	while(m--) {
		int a[4];
		for(int i=0;i<4;i++) {
			cin>>a[i];
		}
		
		sort(a,a+4,cmp);
		if(a[0] == a[1] && a[0] == a[2] + a[3]) {
			cout<<a[0]<<endl;
		}
		else{
			cout<<-1<<endl;
		}
	}
	
	
	return 0;
} 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值