题目链接
题目翻译
作为一次短途旅行的组织者,你需要根据参与人数、预算、酒店及其周末空余床位的情况,决定是否成行。其中旅游人数 ,预算
,可供考虑的酒店数量
,可选择的出行周末
。其中
确定之后,会输入
组数据,每两行为一组,第一行表示该酒店的人均住店费用
,第二行表示
个周末对应每个周末该酒店的床位空余情况
。
题目解析
本题很明显就能看出是一道模拟题。
只需要在输入的时候顺便计算一下是否超预算。如果有,则顺便记录下是否是更低的预算即可。如果都超预算,那么输出 stay home,否则就输出记录的那个更低的预算。
一般 UVA 的题读入行数是不给定的,所以我们要使用
while (cin >> n)
或者
while (~scanf("%d", &n))
代码
#include <bits/stdc++.h>//万能头万岁
using namespace std;
int main() {
int N, B, H, W, p, a, Min = INT_MAX;//Min 根据个人喜好设置较大数
while (cin >> N >> B >> H >> W) {//如果是 scanf 可以加上 != EOF
for (int i = 0; i < H; i++) {
cin >> p;
for (int j = 0; j < W; j++) {
cin >> a;
if (a >= N) Min = min(Min, p * N);//读入时求最小值
}
}
if (Min <= B) {
cout << Min << endl;
} else {
cout << "stay home" << endl;
}
Min = INT_MAX;//根据个人喜好
}
return 0;
}