文章

【GESP】C++二级练习 luogu-b3670, [语言月赛202210] 玉桂狗

GESP二级练习,多重循环、分支语句练习,难度★☆☆☆☆。

luogu-B3670 [语言月赛202210] 玉桂狗

题目要求

题目描述

在商店里共有 $n$ 只玉桂狗玩偶,每只玩偶有可爱度 $k$ 和价格 $p$。$k$ 越大的玉桂狗玩偶越可爱。

某 E 现在有 $R$ 元钱,她想知道自己可以买到的最可爱的玉桂狗玩偶的可爱度为多少。

保证某 E 一定能买到至少一只玉桂狗。

输入格式

输入共 $n+1$ 行。

输入的第一行为两个个整数 $n,R$。

接下来 $n$ 行,每行两个个整数 $k,p$,用于描述一只玉桂狗。

输出格式

输出一行一个整数,代表某 E 能够买到的最可爱的玉桂狗的可爱度。

样例输入 #1

1
2
3
4
5
4 10
100 20
80 10
90 15
10 1

样例输出 #1

1
80

提示

对于 $30\%$ 的数据,$n=1$;
对于另外 $30\%$ 的数据,$R \ge \max p$;
对于 $100\%$ 的数据,$1 \le n \le 10^5, 1 \le k,p,R \le 10^6$。


题目分析

解题思路

  1. 首先,读取输入的玉桂狗玩偶数量 $n$ 和某 E 的钱数 $R$。
  2. 初始化一个变量 max 来存储某 E 能够买到的最可爱的玉桂狗玩偶的可爱度,初始值为 0。
  3. 使用一个循环来遍历每只玉桂狗玩偶。
  4. 对于每只玉桂狗玩偶,读取其可爱度 $k$ 和价格 $p$。
  5. 如果当前玉桂狗玩偶的可爱度 $k$ 大于 max 且价格 $p$ 小于或等于某 E 的钱数 $R$,则更新 max 的值为 $k$。
  6. 输出 max 的值,即某 E 能够买到的最可爱的玉桂狗玩偶的可爱度。


示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main() {
    int n, r; // 定义变量n和r
    cin >> n >> r; // 读取输入的n和r
    int k, p; // 定义变量k和p
    int max = 0; // 初始化变量max为0
    for (int i = 1; i <= n; i++) { // 遍历每只玉桂狗玩偶
        cin >> k >> p; // 读取当前玉桂狗玩偶的可爱度k和价格p
        if (k > max && p <= r) { // 如果当前玉桂狗玩偶的可爱度k大于max且价格p小于或等于某E的钱数r
            max = k; // 更新max的值为k
        }
    }
    cout << max; // 输出max的值,即某E能够买到的最可爱的玉桂狗玩偶的可爱度
    return 0;
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页

luogu-”系列题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

bcqm-”系列题目可在编程启蒙题库进行在线评测。

本文由作者按照 CC BY 4.0 进行授权