编程语言
首页 > 编程语言> > P8109 [Cnoi2021]幻想乡程序设计大赛 题解

P8109 [Cnoi2021]幻想乡程序设计大赛 题解

作者:互联网

因为 \(\{a_n\},\{b_n\}\) 单调不下降,即都已经排好序,直接从小到大依次比较就行了。

我们可以考虑先求出所有的气球数,减去不能派发的气球数,得出能派发的气球数。

当 \(b_i > a_i\) 时,即分发的气球有多的时,需要从气球总和中减去多余的气球,具体可以见代码。

#include<bits/stdc++.h>
using namespace std;
int n, a[100005], b[100005], ans; 
int main() {
	scanf("%d", &n);
	for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
	for(int i = 1; i <= n; i++) scanf("%d", &b[i]), ans += b[i];
	for(int i = 1; i <= n; i++)
		if(b[i] > a[i]) ans -= b[i] - a[i];
	printf("%d\n", ans);
	return 0;
}

标签:int,题解,Cnoi2021,气球,100005,派发,减去,ans,P8109
来源: https://www.cnblogs.com/sunskydp/p/solution-p8109.html