社区讨论

求助qwq

P3545[POI 2012] HUR-Warehouse Store参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m5xfju86
此快照首次捕获于
2025/01/15 12:57
去年
此快照最后确认于
2025/01/15 17:40
去年
查看原帖
RE12个点
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=250000+10;
int n,ans,a[maxn],b[maxn],now;
struct node{
	int day,v;
	bool operator<(const node& x) const{
		return v<x.v;
	}
	bool operator>(const node& x) const{
		return v>x.v;
	}
};
priority_queue<node,vector<node>,less<node> > q;
bool vis[maxn];
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) cin>>b[i];
	for(int i=1;i<=n;i++){
		now+=a[i];
		if(now>=b[i]){
			now-=b[i]; vis[i]=1;
			q.push(node{i,b[i]}); ++ans; 
		
		}else{
			if(q.top().v>b[i] && !q.empty()){
				vis[q.top().day]=0; vis[i]=1;
				now+=q.top().v-b[i];
				q.pop(); q.push(node{i,b[i]});
			}
		}
	}
	cout<<ans<<endl;
	for(int i=1;i<=n;i++) if(vis[i]) cout<<i<<" ";
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...