Roundgod and Milk Tea(多校8 ,1011 )貪心

題目連接:http://acm.hdu.edu.cn/showproblem.php?pid=6667php

思路:求個sum總和,另外再設個變量s=sum;c++

for循環遍歷過去 第i個的時候 他能夠喝h=min(a【i】,sum-b【i】)杯奶茶 ,spa

每次用s減去喝掉的 當s<0的時候表明沒有足夠的能夠喝了 h就賦值爲剩下的奶茶數量code

ans每次累加h的值blog

#include<bits/stdc++.h>
using namespace std; #define ll long long ll a[1000005],b[1000005]; int main() { int i,j,n,m,t; scanf("%d",&t); while(t--) { scanf("%d",&n); ll sum=0; for(i=1;i<=n;i++) { scanf("%lld%lld",&a[i],&b[i]); sum+=b[i]; } ll s=sum; ll ans=0; for(i=1;i<=n;i++) { ll wai=sum-b[i];//除了本身的,外面有多少奶茶
            int h=min(wai,a[i]);//能夠喝的
            if(s-h<0)h=s;//不夠了 h就賦值爲剩下的奶茶數量
            s-=h; ans+=h;//累加
 } cout<<ans<<endl; } return 0; }
相關文章
相關標籤/搜索