1.1.3 分金币给每个人。圆桌旁坐着n个人
发布时间
阅读量:
阅读量
分金币
题目来源 :《算法竞赛入门经典——训练指南》/刘汝佳,陈锋编著
在一张圆桌周围共有n位人士,每位人士手中持有若干枚金币,且所有金币的总数可以被n整除。每位人士可以将部分金币传递给其左右相邻的人,最终目标是使所有人持有的金币数量达到一致。本题要求计算在此过程中所需转移的金币总数的最小值。例如,在n=4的情况下,四个人所拥有的金币数分别为1、2、5和4时,只需进行四次金币转移(第三位人士向第二位人士赠送两枚金币,第二位与第四位人士各自向第一位人士赠送一枚金币)即可实现所有人金币数量相等的目标。
【输入格式
示例代码展示
//代码来源:《算法竞赛入门经典——训练指南》/刘汝佳,陈锋编著.一北京:清华大学出版社,2012.9
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 1000000 + 10;
long long A[maxn], C[maxn], tot, M;
//A 原有金币;M 平均数
int main()
{
int n;
while(scanf("%d", &n) == 1){
tot
全部评论 (0)
还没有任何评论哟~
