原題下載
答案:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
typedef pair<int,int> pii;
multiset<int> chickens;
vector<pii> cows;
int C, N;
int main(void)
{
ifstream fin("helpcross.in");
ofstream fout("helpcross.out");
fin >> C >> N;
int x, y, total=0;
for (int i=0; i<C; i++) { fin >> x; chickens.insert(x); }
for (int i=0; i<N; i++) { fin >> x >> y; cows.push_back(pii(y,x)); }
sort (cows.begin(), cows.end());
for (int j=0; j<N; j++) {
auto which_chicken = chickens.lower_bound(cows[j].second);
if (which_chicken != chickens.end() && *which_chicken <= cows[j].first) {
total++;
chickens.erase(which_chicken);
}
}
fout << total << "\n";
return 0;
}
以上就是關于【USACO 2017 February Contest, Silver Problem 1. Why Did the Cow Cross the Road】的解答,如需了解學校/賽事/課程動態,可至翰林教育官網獲取更多信息。
往期文章閱讀推薦:
耗時一年備考 USACO 卻毫無收獲?一文教你找準最佳備考起步時間!
2026 NOAI國際AI奧賽中國站即將開考!賽事地址&日程已出!

? 2026. All Rights Reserved. 滬ICP備2023009024號-1