帮忙调一下
查看原帖
帮忙调一下
1046320
panbojun楼主2024/8/5 12:00

参考题解:https://www.luogu.com.cn/article/0d33f86e

我的代码样例一直输出9960,打印了也没问题,求调:

#include <bits/stdc++.h>
using namespace std;
const int N = 5100;
struct node{
	int time;
	int money;
}task[N];
int n, m, empty[N], ans;
bool cmp(node&a, node&b){
	return a.money > b.money;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> m >> n;
	for(int i = 1; i <= n; i++) cin >> task[i].time;
	for(int i = 1; i <= n; i++) cin >> task[i].money;
	sort(task + 1, task + 1 + n, cmp);
//	cout << '\n';
//	for(int i = 1; i <= n; i++){
//		cout << task[i].time << ' ' << task[i].money << '\n';
//	}
	for(int i = 1; i <= n; i++){
		for(int j = task[i].time; j >= 1; j--){
			if(empty[j] == 0){//如果这个时间没有做任务 
				empty[j] = 1; //做任务,此时时间用了 
				task[j].money = 0;//完成的任务罚款就清空 
				break;
			}
		}
	}
	for(int i = 1; i <= n; i++){
		ans += task[i].money;//统计罚款 
	}
	ans = m - ans;
	cout << ans << '\n';
	return 0;
}
2024/8/5 12:00
加载中...