T681121 [语言月赛 202510] 选择题题解

 题目描述

数学考试上,小 K 正在做一道选择题。这道题共有三个选项,其中 A,B,C 选项分别是 a,b,c,他自己的算出答案是 d。

小 K 会先检查选项,如果发现三个选项中有重复的选项,那么就会举手向老师示意。

否则,他会选择自己算出的选项。特别地,如果没有自己算出的选项,那么他根据“中庸之道”,会选择三个选项中第二大的数

给出自然数 a,b,c,d,判断小 K 是否会举手示意,如果否,他最终会选择什么选项。

输入格式

输入一行四个整数 a,b,c,d,分别表示此题的 A,B,C 选项,以及小 K 算出的答案。

输出格式

输出一行表示结果。具体地:

  • 如果小 K 会举手示意,则输出 Report
  • 否则,输出一个大写字母(AB 或 C),表示小 K 选择的选项。

输入输出样例

输入 #1复制

10 15 30 10

输出 #1复制

A

输入 #2复制

20 30 20 30

输出 #2复制

Report

输入 #3复制

99 95 97 75

输出 #3复制

C

说明/提示

【样例 1 解释】

A, B, C 选项分别是 10,15,30,无重复选项,因此不举手。

小 K 算出的答案是 10,所以选择 A 项。

【样例 2 解释】

A, B, C 选项分别是 20,30,20,其中 A,C 项重复,因此举手向老师示意。

【样例 3 解释】

A, B, C 选项分别是 99,95,97,无重复选项,因此不举手。

小 K 算出的答案是 75,不在选项内,因此会根据“中庸之道”选择第二大的 C 项。

【数据范围】

对于全部数据,保证 0≤a,b,c,d≤100。

思路

分类讨论,直接输出。

代码见下

#include<bits/stdc++.h>
using namespace std;
long long a[124314],b;
int main(){
	cin>>a[1]>>a[2]>>a[3]>>b;
    if(a[1]==a[2]||a[2]==a[3]||a[1]==a[3]){
        cout<<"Report"<<endl;
        return 0;
    }
    for(int i=1;i<=3;i++){
        if(a[i]==b){
            if(i==1){
                cout<<"A"<<endl;
            }
             if(i==2){
                cout<<"B"<<endl;
            }            
            if(i==3){
                cout<<"C"<<endl;
            }
            return 0;
        }
    }
    if((a[1]<a[2]&&a[1]>a[3])||(a[1]>a[2]&&a[1]<a[3])){
        cout<<"A"<<endl;
        return 0;
    }
    if((a[2]<a[1]&&a[2]>a[3])||(a[2]>a[1]&&a[2]<a[3])){
        cout<<"B"<<endl;
        return 0;
    }
    if((a[3]<a[2]&&a[3]>a[1])||(a[3]>a[2]&&a[3]<a[1])){
        cout<<"C"<<endl;
        return 0;
    }
    return 0;
}

posted @ 2025-10-17 20:36  bz02_2023f2  阅读(7)  评论(0)    收藏  举报  来源