求救~~下载的样例和输出的答案一模一样,但全wa了
查看原帖
求救~~下载的样例和输出的答案一模一样,但全wa了
591952
xiaozhao_楼主2023/8/16 17:17
下载的样例:

| P1230_1.in|

19553

15 13 7 1 6 13 8 10 13 12 3 4 12 1 9 15 755 434 221 637 432 904 80 973 269 186 273 269 248 341 917

| P1230_1.out |

19332


代码:

#include<bits/stdc++.h>
using namespace std;
inline void read(int &x){
	x=0;
	bool f=0;
	char c;
	while((c=getchar())==' '||c=='\n');
	if(c=='-') f=1;
	else x=c^48;
	while((c=getchar())>47&&c<58) x=(x<<3)+(x<<1)+(c^48);
	if(f) x=~x+1;
}
inline void write(int x,char f=0){//f>0输出空格,f<0换行by xiaozhao
	if(!x) putchar('0');
	else{
		if(x<0) putchar('-'),x=~x+1;
		char s[21]={};
		int k=0;
		while(x) s[++k]=x%10+48,x/=10;
		while(k) putchar(s[k--]);
	}
	if(f) putchar(f<0?'\n':' ');
}
const int N=520;
struct node{
	int t,w;
	bool operator < (const node &t){
		return w>t.w;
	}
}a[N];
bool vis[N];
int m,n;
int main(){
	read(m),read(n);
	for(int i=1;i<=n;i++) read(a[i].t);
	for(int i=1;i<=n;i++) read(a[i].w);
	sort(a+1,a+1+n);
	for(int i=1;i<=n;i++){
		bool f=1;
		for(int j=a[i].t;j>=1;j--){
			if(!vis[j]){
				vis[j]=1;
				f=0;
				break;
			}
		}
		if(f) m-=a[i].w;
	}
	write(m,-1);
	return 0;
}

2023/8/16 17:17
加载中...