一千题,No.0025(Chess For Three)

描述

Three friends gathered to play a few games of chess together.

In every game, two of them play against each other. The winner gets 2 points while the loser gets 0, and in case of a draw, both players get 1 point each. Note that the same pair of players could have played any non-negative number of times (possibly zero). It is also possible that no games were played at all.

You've been told that their scores after all the games were played were p1​, p2​ and p3​. Additionally, it is guaranteed that p1​≤p2​≤p3​ holds.

Find the maximum number of draws that could have happened and print it. If there isn't any way to obtain p1​, p2​ and p3​ as a result of a non-negative number of games between the three players, print −1 instead.

输入描述

Each test contains multiple test cases. The first line contains the number of test cases t (1≤t≤500). The description of the test cases follows.

The first line of each test case contains three integers p1​, p2​ and p3​ (0≤p1​≤p2​≤p3​≤30) — the scores of the three players, sorted non-decreasingly.

输出描述

For each testcase, print one number — the maximum possible number of draws that could've happened, or −1 if the scores aren't consistent with any valid set of games and results.

用例输入 1 

7
0 0 0
0 1 1
1 1 1
1 1 2
3 3 3
3 4 5
1 1 10

用例输出 1 

0
1
-1
2
-1
6
2

提示

In the first example, no games were played at all, so no draws could occur either.

For the second example, exactly one game occurred between the second and the third player and it ended in draw, so the answer is 1.

It's easy to see that there's no set of games achieving the scores in third example, so the answer for it is −1.

翻译:

描述

三个朋友聚在一起下了几盘棋。

在每场比赛中,他们中的两个人相互对抗。获胜者将获得2积分,而失败者获得0,如果出现平局,双方都会得到1点每个。请注意,同一对玩家可以玩任何非负数(可能为零)。也有可能根本没有玩任何游戏。

你被告知,他们在所有比赛结束后的得分是p1​,p2​和p3​.此外,还保证p1​≤p2​≤p3​保持。

找到可能发生的最大抽奖次数并打印出来。如果没有任何方法可以获得p1​,p2​和p3​由于三名玩家之间的游戏数不为负数,请打印−1相反。

输入描述

每个测试都包含多个测试用例。第一行包含测试用例的数量t (1≤≤500).测试用例的描述如下。

每个测试用例的第一行包含三个整数p1​,p2​和p3​ (0≤p1​≤p2​≤p3​≤30) — 三名玩家的分数,不递减排序。

输出描述

对于每个测试用例,打印一个数字 — 可能发生的最大绘制次数,或者−1如果分数与任何一组有效的游戏和结果不一致。

用例输入 1 

7
0 0 0
0 1 1
1 1 1
1 1 2
3 3 3
3 4 5
1 1 10

用例输出 1 

0
1
-1
2
-1
6
2

提示

在第一个示例中,根本没有进行任何游戏,因此也不会发生平局。

对于第二个例子,第二位和第三位玩家之间恰好发生了一场比赛,并以平局告终,所以答案是1.

不难看出,在第三个例子中,没有一组游戏能达到分数,所以答案是−1.

解题思路:

1. 当平局时每人加1分,也就是本来赢得2分平分了,所以无论怎么打,只要有答案总分数就是偶数

2.因为要计算平局最大数,所以就将最大的两个-1,直到减不了为止

c++ 代码如下:

#include <bits/stdc++.h>using namespace std;int main()
{int n;cin >> n;while(n--){int res = 0;int a,b,c;cin >> a >> b >> c;int sum = a + b + c;if(sum%2 != 0){cout << -1 << endl;}else{//初始化setmultiset<int> s;s.insert(a);s.insert(b);s.insert(c);//初始化循环auto t1 = --s.end();auto t2 = --s.end();--t2;int num1 = *t1;int num2 = *t2;while(num2 >=1 && num1 >= 1){//更改元素--num1;--num2;s.erase(--s.end());s.erase(--s.end());s.insert(num1);s.insert(num2);//结果计数++res;//更新数据t1 = --s.end();t2 = --s.end();--t2;num1 = *t1;num2 = *t2;}cout << res << endl;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/15523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL精通之路】SQL语句(3)-锁和事务语句

目录 1.START TRANSACTION、COMMIT和ROLLBACK语句 2.无法回滚的语句 3.导致隐含COMMIT的语句 4.SAVEPOINT、ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT语句 5.LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE语句 6.LOCK TABLE和UNLOCK TABLES语句 6.1 表锁获取 6.2 表锁释放…

qemu+gdb调试linux内核

打开CONFIG_DEBUG_INFO,编译内核 通过图形菜单配置该宏,执行make menuconfig。 kernel hacking —> compile-time checks and compiler options —> compile the kernel with debug info 验证是否打开成功,grep -nr “CONFIG_DEBUG_INFO” .config。 打开成功,然后…

plsql 学习

过程化编程语言 赋值&#xff1a;&#xff1a; ||&#xff1a;连接符号 dbms_output.put_line() :输出的语句 var_name ACCOUNTLIBRARY.USERNAME%type; 变量名&#xff1b;某个表的数据类型&#xff1b;赋值给变量名 用下面的方法更好用 异常exception 循…

力扣HOT100 - 75. 颜色分类

解题思路&#xff1a; 单指针&#xff0c;对数组进行两次遍历。 class Solution {public void sortColors(int[] nums) {int p 0;int n nums.length;for (int i 0; i < n; i) {if (nums[i] 0) {int tmp nums[i];nums[i] nums[p];nums[p] tmp;p;}}for (int i p; i …

java库和包的概念

在Java中&#xff0c;"库"和"包"是两个不同的概念&#xff0c;但它们之间存在着密切的关联。 库&#xff08;Library&#xff09; 定义&#xff1a;库是一组已经编写好的代码和资源&#xff0c;用于解决特定的问题或提供特定的功能。它可以包含一个或多个…

【前端每日基础】day19——回调函数

回调函数 回调函数是一种常见的编程概念&#xff0c;它是指在函数执行完毕后&#xff0c;将另一个函数作为参数传递给它&#xff0c;以便在特定条件满足时调用这个函数。回调函数通常用于处理异步操作、事件处理、定时器等场景&#xff0c;以实现非阻塞式的程序设计。 特点和…

存储+调优:存储-IP-SAN-EXTENSION

存储调优&#xff1a;存储-IP-SAN-EXTENSION 文件系统的锁标记 GFS&#xff08;锁表空间&#xff09; ----------- ------------ ------------- 节点 | ndoe1 | | node2 | | node3 | ---------- ------…

断更是我的错

打算在暑假每天两个文章&#xff0c;大概是6月20多号开始吧。

vue3中watch语法

在Vue 3中&#xff0c;watch仍然是一个用于观察和响应Vue实例上的数据变化的选项。watch选项接受一个对象&#xff0c;该对象中的属性对应要观察的数据属性&#xff0c;并指定对应的回调函数&#xff0c;用于处理数据变化时的逻辑。 watch选项的语法如下&#xff1a; watch: …

GNSS中的多路径效应原理及计算方法

1 多路径效应原理 图1 多路径效应原理图 2 计算方法 如需原文&#xff0c;可加多源融合定位与智能控制讨论群获取,QQ群号&#xff1a;51885949

ORACLE 6节点组成的ACFS文件系统异常的分析思路

近期遇到多次6节点集群的ACFS文件系统环境异常问题&#xff1b;如24日中午12点附近出现ACFS文件系统访问异常&#xff0c;通过查看集群ALERT日志、CSSD进程日志及OSW监控软件的日志&#xff0c;可以发现OSW监控软件在11:55-12:40分时没有收集到虚拟机LINUX主机的监控数据&#…

【OceanBase诊断调优】—— 直连普通租户时遇到报错:Tenant not in this server

本文介绍了直连 OceanBase 数据库中的普通租户时&#xff0c;出现报错&#xff1a;ERROR 5150 (HY000) : Tenant not in this server 的处理方法。 问题描述 在 n-n 或者 n-n-n (n>1) 的部署架构中&#xff0c;使用 2881 端口 直连 OceanBase 集群的普通租户&#xff0c;可…

ChatGPT大语言模型发展历史

技术背景与OpenAI成立 2010年代初&#xff1a;随着深度学习技术的突破&#xff0c;特别是循环神经网络(RNN)和长短时记忆网络(LSTM)的成功应用&#xff0c;自然语言处理(NLP)领域开始经历一场革命。2015年12月&#xff1a;OpenAI作为一个旨在确保人工智能(AI)研究造福全人类的…

Java并行流

Java并行流 什么是并行流&#xff1f;并行流的优缺点优点缺点 如何使用&#xff1f;1.创建流2.转换为并行流3.流操作4.收集结果5.关闭流 并行流的本质1.任务划分和调度2.并发处理数据3.任务结果合并4.性能优化 参考文献官方文档 什么是并行流&#xff1f; 并行流&#xff08;p…

【C++风云录】揭秘医疗机器人:技术解析与应用探索

打造智能医疗&#xff1a;医疗机器人技术与手术辅助 前言 本文将在深度和广度上探讨六种尖端医疗机器人系统&#xff0c;并重点介绍其应用、C控制接口及其功能。这些机器人系统分别是ROSA Robot、Da Vinci Surgical SystemSDK、Intuitive Surgical’s da Vinci Xi、Medroboti…

黑龙江等保测评新要求下的政府信息化安全实践案例分析

在数字化转型的浪潮中&#xff0c;政府机构作为社会管理和公共服务的核心&#xff0c;其信息安全的重要性日益凸显。近期&#xff0c;黑龙江省积极响应国家网络安全战略&#xff0c;依据最新的等级保护测评&#xff08;简称“等保测评”&#xff09;要求&#xff0c;对政府信息…

SpringBoot运维篇(打包,多环境,日志)

文章目录 一、SpringBoot程序的打包与运行二、配置高级三、多环境开发四、日志 一、SpringBoot程序的打包与运行 刚开始做开发学习的小伙伴可能在有一个知识上面有错误的认知&#xff0c;我们天天写程序是在Idea下写的&#xff0c;运行也是在Idea下运行的。 ​但是实际开发完成…

CDH6.3.2集成Flink1.17

直接运行脚本即可&#xff0c;一键输出相关依赖包 运行步骤已给到文档 下载地址

Html基础笔记

Html超文本标记语言 (HyperText Markup Language) 超文本 指的是网页中可以显示的内容(图片,超链接,视频,) 标记语言 标记–>标签(标注) 例如:买东西的时候—>商品具有标签,看到标签就知道商品的属性(价格,材质,型号等,) 标记语言就是提供了很多的标签,不同的标签…

若依框架对于后端返回异常后怎么处理?

1、后端返回自定义异常serviceException 2、触发该异常后返回json数据 因为若依对请求和响应都封装了&#xff0c;所以根据返回值response获取不到Code值但若依提供了一个catch方法用来捕获返回异常的数据 3、处理的方法