AT4626 Subscribers 题解

题意简述

求同时解答 AA 问题和 BB 问题的最小和最大人数。

解题思路

1 . 最大人数

经过观察这几个样例,不难发现最大人数就是 min(a,b)min(a,b)

可以这样理解:设 A>BA > B(设 B>AB > A 也没关系)。

那么所有解答 XX 问题的人都去解答了 YY 问题。

2 . 最少人数

好吧,的确的分类讨论

1 . $A + B \leqslant N $

这样每个人都只回答 XX 问题或 YY 问题。不会产生交集。

2 . $A + B > N $

在这种情况下,必然会产生交集。这样,最小值就为 A+BNA + B - N

代码实现

#include<bits/stdc++.h>
using namespace std;
int n,a,b;
int main() {
	scanf("%d%d%d",&n,&a,&b);
	printf("%d\n",min(a,b));
	if(a+b<=n) printf("0");
	else printf("%d",a+b-n);
	return 0;
}
//code by TheCedar