ans

liujunhao 2023-11-25 13:34:22 2023-12-02 10:50:26 7 返回题目

#include<bits/stdc++.h>

using namespace std;

const int N=5*1e6+10;

int b[N];

struct rec{

int l,r;

}a[510];

int sb(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,sb);

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 }}