社区讨论

求这篇代码RE的原因~在线等,挺急的

学术版参与者 3已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@lobl6ctk
此快照首次捕获于
2023/10/29 22:48
2 年前
此快照最后确认于
2023/11/04 03:44
2 年前
查看原帖

P1083 [NOIP2012 提高组] 借教室

CPP
#include <bits/stdc++.h>
using namespace std;
struct xun{
    int c,start,end;
}b[1000];
int cf[1000],a[1000];
int main(){
    int n, m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
    	cin>>b[i].c>>b[i].start>>b[i].end;
    	cf[b[i].start]+=b[i].c;
    	cf[b[i].end+1]-=b[i].c;
    }
//////////////////////////////////    
	int sum=0,ans=-1,f=0;
	for(int i=1;i<=n;i++){
		sum+=cf[i];
		if(sum>a[i]){
			for(int p;sum>a[i];m--){
				cf[b[m].start]-=b[m].c;
				cf[b[m].end+1]+=b[m].c;
				if(b[m].start<=i&&i<=b[m].end);
			}
			
			if(f==1){
				ans=m;
				f=0;
			}
			else{
				ans=min(ans,m);
			}
		}
	}
//////////////////////////////////
	if(ans==-1){
		cout<<"0";
	}
	else{
		printf("-1 \n %d",ans);
	}
    return 0;
}

回复

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

正在加载回复...