PAT 1098 岩洞施工 (20 分)
这个题目没有坑,因为管子一定是水平的,所以简单的多,只需要求上面边界的最小值和下面边界的最大值,如果上面的最小值小于等于下面的最大值,那么就过不去,否则就可以过去,再分别计算能过多少以及需要削掉的最小高度即可。
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> up(n);
int U = INT_MAX;
for (int i = 0; i < n; i++){
cin >> up[i];
U = min(U, up[i]);
}
int D = -INT_MAX;
for (int i = 0; i < n; i++){
cin >> up[i];
D = max(D, up[i]);
}
if (U > D){
cout << "Yes" << " " << U - D;
} else {
cout << "No" << " " << D - U + 1;
}
}
- 喜欢的话可以点个赞哦