P3112 [USACO14DEC] Guard Mark G

题目描述

农夫约翰和他的牛群正在玩飞盘。贝茜将飞盘扔向场地,但它正好飞向对方队伍的场地工马克!马克的身高为 $H$($1 \leq H \leq 10^9$),但贝茜队伍中有 $N$ 头牛围在马克周围($2 \leq N \leq 20$)。只有当它们堆叠起来的高度至少和马克一样高时,它们才能接住飞盘。每头牛都有一个高度、重量和力量。牛的力量表示可以堆叠在她上面的牛的总重量的最大值。 在这些限制条件下,贝茜想知道她的队伍是否可以搭建一个足够高的堆叠来接住飞盘,如果可以,那么这种堆叠的最大安全系数是多少。堆叠的安全系数是指在不超过任何牛的力量的情况下,可以添加到堆叠顶部的重量。

输入格式

输入:(文件 guard.in) 输入的第一行包含 $N$ 和 $H$。 接下来的 $N$ 行输入每行描述一头牛,给出它的高度、重量和力量。所有值都是不超过 10 亿的正整数。

输出格式

输出:(文件 guard.out) 如果贝茜的队伍可以搭建一个足够高的堆叠来接住飞盘,请输出这种堆叠的最大可实现安全系数。 否则输出“Mark is too tall”(不带引号)。

说明/提示

题面翻译由 ChatGPT-4o 提供。