原题下载
答案:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> A;
int main() {
int N, K, B;
cin >> N >> K >> B;
A.resize(B);
for (int i = 0; i < B; i++) {
cin >> A[i];
}
sort(A.begin(), A.end());
int hia = 0;
while (hia < B && A[hia] <= K) {
hia++;
}
int result = hia;
for (int i = 0; i < B; i++) {
if (A[i] + K > N) {
break;
}
while (hia < B && A[hia] <= A[i] + K) {
hia++;
}
result = min(result, hia - i - 1);
}
cout << result << endl;
return 0;
}

以上就是关于【USACO 2017 February Contest, Silver Problem 2. Why Did the Cow Cross the Road II】的解答,如需了解学校/赛事/课程动态,可至翰林教育官网获取更多信息。
往期文章阅读推荐:
5金3银!2026 IOAI国际人工智能奥赛收官!中国队取得历史性突破!
AI奥赛2026国家队名单公布! 新赛季翰林助力直通IOAI全球总决赛!

© 2026. All Rights Reserved. 沪ICP备2023009024号-1