NC54516. 食物分配
描述
输入描述
第一行一个整数,表示数据的组数。
接下来一共T行,第行表示第i组数据,每行四个整数,分别表示四份食物的分量。
输出描述
输出T行,第i行对应输入的第i组数据,每行一个整数。如果能将四份食物分给三个人且每人得到的食物分量相同,则输出每人得到的食物的分量。否则输出-1。
示例1
输入:
2 1 2 3 3 1 1 3 3
输出:
3 -1
说明:
对于第一组数据,一名队员可以分到分量为1和分量为2的食物,另外两名队员则分到分量为3的食物。C++14(g++5.4) 解法, 执行用时: 6ms, 内存消耗: 376K, 提交时间: 2019-12-01 14:11:46
#include<iostream> #include<algorithm> using namespace std; int main() { int t; cin>>t; while(t--) { int a[4]; cin>>a[0]>>a[1]>>a[2]>>a[3]; sort(a,a+4); if(a[0]+a[1]==a[2]&&a[2]==a[3]) cout<<a[3]<<endl; else cout<<-1<<endl; } }
C++11(clang++ 3.9) 解法, 执行用时: 7ms, 内存消耗: 400K, 提交时间: 2020-02-16 21:43:19
#include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; while(n--) { int a[4]; cin>>a[0]>>a[1]>>a[2]>>a[3]; sort(a,a+4); if(a[0]+a[1]==a[2]&&a[2]==a[3]) cout<<a[2]<<endl; else cout<<-1<<endl; } }
Python3 解法, 执行用时: 44ms, 内存消耗: 4540K, 提交时间: 2023-04-12 18:52:10
for _ in range(int(input())): l=sorted(map(int,input().split())) if l[0]+l[1]==l[2]==l[3]:print(l[3]) else:print(-1)