题解 P6179 【[USACO15DEC]High Card Wins S】
ChungZH's blog · ChungZH's portfolio
比楼上大佬的方法麻烦一点
首先输入出牌顺序,然后排序一遍。(数组
用一个 flag 数组记录一下哪些牌不在 Elsie 手中(
把属于 Bessie 的牌计入另一个数组
然后循环一遍,如果
由于 有点绕口
#include <algorithm>
#include <iostream>
using namespace std;
bool flag[100004];
int main() {
int n;
cin >> n;
int a[n + 3];
for (int i = 1; i <= n; i++) {
cin >> a[i];
flag[a[i]] = 1;
}
int b[n + 3], bidx = 1;
for (int i = 1; i <= 2 * n; i++)
if (!flag[i]) b[bidx++] = i;
sort(a + 1, a + n + 1);
int cur = 1;
for (int i = 1; i <= n; i++) {
if (b[i] > a[cur]) {
cur++;
}
}
cout << cur - 1 << endl;
return 0;
}