编程题:h1536. 均分纸牌
有N堆纸牌,编号分别为 1,2,…,N。
每堆上有若干张。可以在任一堆上取若干张纸牌,然后移动。
移牌规则为:在编号为 1 的堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N−1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。
现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。
例如 N=5,5 堆纸牌数分别为:(50 10 30 40 20)。
则移动 2次可达到目的:
1.从第一堆取20张牌放入第二堆,各堆纸牌数量变为:(30 30 30 40 20)。
2.从第四堆取10张牌放入第五堆,各堆纸牌数量变为:(30 30 30 30 30)。
### 输入格式:
第一行包含整数 N(1≤N≤100)。
第二行包含 N 个整数,A1,A2,…,AN (1≤Ai≤10000)表示各堆的纸牌数量。
### 输出格式:
输出使得所有堆的纸牌数量都相等所需的最少移动次数。若纸牌的总数不是N的倍数,输出0。
### 输入样例:
在这里给出一组输入。例如:
in
5
50 10 30 40 20
### 输出样例:
在这里给出相应的输出。例如:
out
2
答案:若无答案欢迎评论
每堆上有若干张。可以在任一堆上取若干张纸牌,然后移动。
移牌规则为:在编号为 1 的堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N−1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。
现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。
例如 N=5,5 堆纸牌数分别为:(50 10 30 40 20)。
则移动 2次可达到目的:
1.从第一堆取20张牌放入第二堆,各堆纸牌数量变为:(30 30 30 40 20)。
2.从第四堆取10张牌放入第五堆,各堆纸牌数量变为:(30 30 30 30 30)。
### 输入格式:
第一行包含整数 N(1≤N≤100)。
第二行包含 N 个整数,A1,A2,…,AN (1≤Ai≤10000)表示各堆的纸牌数量。
### 输出格式:
输出使得所有堆的纸牌数量都相等所需的最少移动次数。若纸牌的总数不是N的倍数,输出0。
### 输入样例:
在这里给出一组输入。例如:
in
5
50 10 30 40 20
### 输出样例:
在这里给出相应的输出。例如:
out
2
答案:若无答案欢迎评论