题解:洛谷 P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎

【题目来源】

洛谷:P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎 - 洛谷

【题目描述】

一天的嗯欧哎有三道题,每道题的得分均在 \(0 \sim 100\) 之间。定义一道题的得分在 \(85 \sim 100\) 之间(含 \(85\)\(100\),下同)时该题近似通过,在 \(45 \sim 84\) 之间时为高分暴力,在 \(25 \sim 44\) 之间时为低分暴力,在 \(1 \sim 24\) 之间时为指数级暴力,若为 \(0\) 分则认为是爆零。

一场发挥出真实水平的嗯欧哎有以下四种情况:

  • 一道题高分暴力加一道题低分暴力加一道题指数级暴力;
  • 一道题近似通过加一道题高分暴力加一道题低分暴力;
  • 两道题近似通过加一道题低分暴力或高分暴力;
  • 三道题近似通过。

给出一个人一天的嗯欧哎三道题的得分 \(a,b,c\),求是否发挥出真实水平。

【输入】

仅一行,三个非负整数 \(a, b, c\),表示某个人一天嗯欧哎三题的得分。

【输出】

仅一行,一个字符串 YesNo,表示是否发挥出了真实水平。

【输入样例】

50 50 10

【输出样例】

No

【算法标签】

《洛谷 P11559 嗯欧哎》 #模拟# #梦熊比赛# #O2优化#

【代码详解】

#include <bits/stdc++.h>
using namespace std;

int a, b, c, d, e, t;  // a,b,c,d,e: 统计不同分数段的人数,t: 临时变量存储分数

int main()
{
    // 读取3个人的分数并分类统计
    for (int i = 1; i <= 3; i++)
    {
        cin >> t;
        if (t >= 85)  // 85分及以上
        {
            a++;
        }
        else if (t >= 45)  // 45-84分
        {
            b++;
        }
        else if (t >= 25)  // 25-44分
        {
            c++;
        }
        else if (t >= 1)  // 1-24分
        {
            d++;
        }
        else  // 0分
        {
            e++;
        }
    }
  
    // 检查是否存在满足条件的组合
    if (
        (b == 1 && c == 1 && d == 1) ||  // 各分数段各1人(45-84, 25-44, 1-24)
        (a == 1 && b == 1 && c == 1) ||   // 各分数段各1人(85+, 45-84, 25-44)
        (a == 2 && c == 1) ||             // 2人85+,1人25-44
        (a == 2 && b == 1) ||             // 2人85+,1人45-84
        (a == 3)                          // 3人85+
    )
    {
        cout << "Yes";
    }
    else 
    {
        cout << "No";
    }
  
    return 0;
}

【运行结果】

50 50 10
No
posted @ 2026-02-15 15:13  团爸讲算法  阅读(13)  评论(0)    收藏  举报