求大佬找错
2026-06-16 20:16:30
发布于:广东
题目传送
题目的中文翻译:
B - 环形石头剪刀布
时间限制:2 秒
内存限制:1024 MiB
分值:500 分
问题描述
有一场石头剪刀布比赛,共有 (a+b+c) 名参赛者。其中 (a,b,c) 是非负整数,且 (3 \le a+b+c)。
比赛中,所有参赛者首先站成一个圆圈。然后,每名参赛者出“石头”、“剪刀”或“布”。
对于每名参赛者,如果他出的手势同时打败了他左边参赛者和右边参赛者出的手势,那么他成为赢家。赢家不一定只有一个;可能有零个、两个或更多赢家。
更正式地说,当以下情况之一成立时,该参赛者成为赢家:
- 该参赛者出“石头”,且左右两边的邻居都出“剪刀”;
- 该参赛者出“剪刀”,且左右两边的邻居都出“布”;
- 该参赛者出“布”,且左右两边的邻居都出“石头”。
已知关于本次比赛的信息如下:
- 有 (a) 名参赛者出了“石头”;
- 有 (b) 名参赛者出了“剪刀”;
- 有 (c) 名参赛者出了“布”。
在上述条件下,求出可能的最大赢家数量。
共有 (T) 个测试用例,请分别求解每个测试用例。
约束条件
- (1 \le T \le 5 \times 10^5)
- (0 \le a,b,c \le 10^9)
- (3 \le a+b+c)
- 所有输入值均为整数
输入格式
输入按以下格式从标准输入给出:
T
case1
case2
...
caseT
每个测试用例的格式如下:
a b c
输出格式
每个测试用例输出一行答案。
对于每个测试用例,输出该条件下可能的最大赢家数量。
样例输入1
6
3 1 2
2 2 2
123 456 789
10 0 0
10 0 100
100 0 10
样例输出1
2
1
578
0
9
10
样例1解释
以第一个测试用例为例。假设6名参赛者的手势如下图所示(图中A表示“石头”,B表示“剪刀”,C表示“布”):
[此处省略图片]
图中,有3人出“石头”,1人出“剪刀”,2人出“布”,与输入一致。在此情况下,赢家是2名出“布”的参赛者。
本蒟蒻代码:
#include<bits/stdc++.h>
using namespace std;
long long a,b,c;//石头、剪刀、布
long long t;
int main(){
cin>>t;
while(t--){
long long sum=0;
cin>>a>>b>>c;
if(a<=b&&a<=c){
if(a==0&&c==b){
cout<<c<<endl;
continue;
}
if(b>=c){
if(c>0){
sum=sum+c-1;
b=b-c+1;
}//剪刀 剪刀
if(b<=a){
if(b==0)b++;
cout<<sum+b-1<<endl;
}else{
cout<<sum+a<<endl;
}
}else{
if(b>0){
sum=sum+b;
c=c-b-1;
}
if(a<=c){
if(a==0)a++;
cout<<sum+a-1<<endl;
}else{
cout<<sum+c<<endl;
}
}
}else if(b<=a&&b<=c){
if(b==0&&c==a){
cout<<a<<endl;
continue;
}
if(a<=c){
if(a>0){
sum=sum+a-1;
c=c-a+1;
}
if(c<=b){
if(c==0)c++;
cout<<sum+c-1<<endl;
}else{
cout<<sum+b<<endl;
}
}else{
if(c>0){
sum=sum+c;
a=a-c-1;
}
if(b<=a){
if(b==0)b++;
cout<<sum+b-1<<endl;
}else{
cout<<sum+a<<endl;
}
}
}else if(c<=a&&c<=b){
if(c==0&&a==b){
cout<<a<<endl;
continue;
}
if(b<=a){
if(b>0){
sum=sum+b-1;
a=a-b+1;
}
if(a<=c){
if(a==0)a++;
cout<<sum+a-1<<endl;
}else{
cout<<sum+c<<endl;
}
}else{
if(a>0){
sum=sum+a;
b=b-a-1;
}
if(c<=b){
if(c==0)c++;
cout<<sum+c-1<<endl;
}else{
cout<<sum+b<<endl;
}
}
}
}
return 0;
}//
问了deepseek根本找不到错.....


全部评论 3
诶你这个代码和题目对的上吗,我感觉输入就不对了
2026-06-14 来自 浙江
0题目放错了
2026-06-18 来自 广东
0现在改了
2026-06-18 来自 广东
0
你牛大了,再发这种写信给Atcoder封你号
2026-06-14 来自 广东
0好像代码对不上的
2026-06-14 来自 浙江
0题目放错了

2026-06-16 来自 广东
0
能给原题链接吗
2026-06-14 来自 浙江
0https://atcoder.jp/contests/arc222/tasks/arc222_a
2026-06-14 来自 广东
0沃日,你发出来调现在的 ARC 啊
2026-06-14 来自 浙江
0原题链接
2026-06-14 来自 广东
0























有帮助,赞一个