2019杭电多校 第八场1011Roundgod and Milk Tea(6667)

2019杭电多校 第八场1011Roundgod and Milk Tea(6667)

题目

http://acm.hdu.edu.cn/showproblem.php?pid=6667

题意

给你数字n,表示有n个班,接下来n行有两个数据a,b分别表示班级人数和奶茶数目。
要求:每个班的同学都不能和自己班里的奶茶,每个人最多喝一杯奶茶,求喝奶茶最多的人数。

题解

模拟一下题意就可以了。将奶茶总和sum统计下来,每个人班的人数要是小于sum-b[i] (班级的奶茶数),那么他们班所有同学就可以喝到奶茶。否则就只有sum-b[i]个人能喝奶茶。最后取答案和sum的最小值就可以了。

AC代码

#include<iostream>
using namespace std;
#define ll long long

ll a[1000005];
ll b[1000005];
ll sum,ans;
int main()
{
    int T,n;
    scanf("%d",&T);
    while(T--)
	{
        scanf("%d",&n);
        sum=0,ans=0;
        for(int i=0;i<m;i++)
        {
        	scanf("%lld %lld",&a[i],&b[i]);
			sum+=b[i];
		}
        for(int i=0;i<m;i++)
        {
        	if(a[i]<=(sum-b[i]))
            {
            	ans += a[i];
			} 	
            else
            {
            	ans += sum - b[i];
			}
		}		
        printf("%lld\n",min(ans,sum));
    }
    return 0;
}
发布了51 篇原创文章 · 获赞 16 · 访问量 3367

猜你喜欢

转载自blog.csdn.net/weixin_43911945/article/details/99617875