题目
思路
暴力模拟吧。。注意在最左边的旅馆的左边以及最右边旅馆的右边也可以建立旅馆,即可以越过区间建立。这是数组类题目常有的问题。
AC代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, d;
cin >> n >> d;
int hotel[n + 1];
int min_ = INT_MAX, max_ = INT_MIN;
for (int i = 1; i <= n; ++i) {
cin >> hotel[i];
min_ = min(min_, hotel[i]);
max_ = max(max_, hotel[i]);
}
int temp, res = 0;
for (int i = min_ - 2 * d; i <= max_ + 2 * d; ++i) {
temp = INT_MAX;
for (int j = 1; j <= n; ++j) {
temp = min(temp, abs(hotel[j] - i));
}
if (temp == d)
res++;
}
cout << res;
}
文章评论