CF4B Before an Exam

题目描述

明天彼得将有一场生物考试。他并不太喜欢这门科目,但在 $d$ 天前他得知自己需要参加这场考试。彼得严格的父母让他立刻开始为考试做准备,因此他每天必须学习不少于 $minTime_{i}$ 小时,也不能超过 $maxTime_{i}$ 小时。此外,父母还警告彼得,在考试前一天会检查他是否遵守了这些要求。 今天就是父母要求彼得出示复习时间表的日子。但彼得只统计了他实际花费的总小时数 $sumTime$ 用于复习,现在他想知道能否给父母出示一个长度为 $d$ 的时间表 $schedule$,其中每个数 $schedule_{i}$ 表示彼得在第 $i$ 天学习生物的小时数,要求满足父母的限制,同时所有 $schedule_{i}$ 之和等于 $sumTime$。

输入格式

第一行输入两个整数 $d,sumTime$($1 \le d \le 30,\, 0 \le sumTime \le 240$),分别表示彼得复习的天数和用在复习上的总小时数。接下来的 $d$ 行,每行输入两个整数 $minTime_{i}, maxTime_{i}$($0 \le minTime_{i} \le maxTime_{i} \le 8$),分别表示第 $i$ 天可以用来复习的最少和最多小时数,用空格隔开。

输出格式

如果存在一种满足条件的时间表,则第一行输出 YES,第二行输出 $d$ 个用空格隔开的数,依次表示彼得每一天复习的小时数。如果有多种方案,输出任意一种即可。 如果不存在这样的时间表,则只需在一行输出 NO。

说明/提示

由 ChatGPT 5 翻译