首页 > 试题广场 >

小红的优惠券

[编程题]小红的优惠券
  • 热度指数:63 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红在上次双十一买了非常多的东西,订单总价为 n 元。

小红有好多优惠券,每张优惠券都是满 a 元减 b 元,意思是,如果 n\geq a ,那么小红只需要花费 n-b 元就可以了。

小红只能用一张优惠券,她想知道她最少需要花多少钱。

输入描述:
第一行输入两个整数 n(1 \leq n \leq 10^5),m(1 \leq m \leq 100) 分别表示订单总价和优惠券数量。

接下来 m 行,每行输入两个整数 a,b(1 \leq b \leq a \leq 10^5)


输出描述:
输出一个整数表示答案。
示例1

输入

100 3
300 50
200 30
50 5

输出

95

说明

小红只能用第三张优惠券。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    while(line = await readline()){
        let tokens = line.split(' ');
        let total = parseInt(tokens[0]);
        let n = parseInt(tokens[1]);
        let u=0;
        let a=[]
        for(let i=0;i<n;i++){
            lineC = await readline()
            a[i]=lineC.split(" ")
        }
        const m=a.filter((i)=>Number(i[0])<=Number(total))
        m.sort((a,b)=> b[1]-a[1])
        if(m.length==0)console.log(total)
        else
        console.log(total-m[0][1])

    }
}()

发表于 2025-04-27 17:51:28 回复(0)