救民于水火
caochenshuo
2023-11-25 17:35:34
6
返回题目
#include <bits/stdc++.h>
using namespace std;
const int N = 5 * 1e6 + 10;
int b[N];
struct rec {
int l, r;
} a[510];
int cmp(rec x, rec y) { return x.r > y.r; }
int main() {
int m, n, flag, sum;
scanf("%d%d", &m, &n);
sum = m;
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i].l);
}
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i].r);
}
sort(a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; i++) {
flag = 1;
for (int j = a[i].l; j >= 1; j--) {
if (b[j] == 0) {
flag = 0;
b[j] = 1;
break;
}
}
if (flag) {
for (int j = n; j >= 1; j--) {
if (b[j] == 0) {
b[j] = 1;
break;
}
}
sum -= a[i].r;
}
}
printf("%d", sum);
return 0;
}
{{ vote && vote.total.up }}