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

2022/2/5 14:12:32

本文主要是介绍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;
}


这篇关于P8109 [Cnoi2021]幻想乡程序设计大赛 题解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程