一千題,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.pswp.cn/web/15523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15523.shtml
英文地址,請注明出處:http://en.pswp.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、處理的方法