[一天至少一题直到 ICPC 开赛 #014] 解题:Equal Candies(12/23)

Equal Candies

题目连结

首先要了解以下几个条件

1.不能把糖果换到其他盒
2.只能用减少(吃)的方式来达成平衡(每盒糖果数量相同)

所以我们能得出一个结论:
要把所有盒子的糖果数量减少到跟最少糖果数量的盒子相同

#include <iostream>#include <vector>#define ll long long intusing namespace std;int main(int argc, char const *argv[]){    int t, n;    cin >> t;    while (t--)    {        int ans, count = 0;        cin >> n;        vector<ll> v(n);        /*        核心思路:        1.找到糖果数量最少的盒子        2.把(其他盒子糖果的数量)-最少糖果的数量        */        cin >> v[0]; // 在这里是为了避免等等可能会产生V[-1]<V[0]的情况        ans = v[0];        for (int i = 1; i < n; i++) // 因为v[0]已经输入了,从v[1]开始迴圈        {            cin >> v[i];            if (ans > v[i]) // 找到最少糖果的盒子里糖果的数量            {                ans = v[i];            }        }        // 开始计算要吃掉几颗        for (int i = 0; i < n; i++)        {            if (ans < v[i]) // 盒子内的数量不是最小的数量            {                count = (v[i] - ans) + count; // 吃掉糖果+已经累积吃掉的糖果            }        }        cout << count << endl;    }    return 0;}

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章