ABC362C 这么做为什么不对
  • 板块学术版
  • 楼主T_TLucas_Yin
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/7/13 22:12
  • 上次更新2024/7/14 09:10:40
查看原帖
ABC362C 这么做为什么不对
835809
T_TLucas_Yin楼主2024/7/13 22:12

rt。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,f[1000005];
struct node{
	int l,r;
}a[1000005];
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i].l>>a[i].r;
	int sum=0;
	for(int i=1;i<=n;i++){
		if(a[i].r<0) sum+=a[i].r,f[i]=a[i].r;
		if(a[i].l>0) sum+=a[i].l,f[i]=a[i].l;
	}
	for(int i=1;i<=n;i++){
		if(a[i].l<=0&&a[i].r>=0){
			if(sum<0) f[i]=min(a[i].r,-sum),sum+=min(a[i].r,-sum);
			else if(sum>0) f[i]=max(a[i].l,-sum),sum+=max(a[i].l,-sum);
			else f[i]=0;
		}
	}
	if(sum!=0){
		cout<<"No";
		return 0;
	}
	cout<<"Yes\n";
	for(int i=1;i<=n;i++) cout<<f[i]<<" ";
	return 0;
}
2024/7/13 22:12
加载中...