题库练习 巨石阵

A71489 | 巨石阵

来源编程题
时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

你在⼀个岛屿上,这个岛屿有⼀个神秘的巨石阵,据说在这个巨石阵中隐藏着传说中的宝藏。这个巨石阵由 n 块石头组成,每块石头的重量都是正整数。你得到了⼀份任务,需要把这些石头尽可能多的粉碎,找到隐藏在其中的宝藏。

你得到了⼀台石头破碎机,每⼀回合,你可以从中选出两块石头,然后将它们⼀起粉碎。如果这两块石头的重量相同,那么这两块石头都会被完全粉碎;如果它们的重量不同,那么假 设石头的重量分别为 xy ,且 x \leq y ,那么粉碎的可能结果如下:

如果 x 等于 y ,那么两块石头都会被完全粉碎;

如果 x 不等于 y ,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y - x

你想要尽可能地找到隐藏在其中的宝藏,因此让最后剩余的石块的重量尽可能小

你决定编写⼀个程序,帮助你计算出最后剩下的最后的石头重量,如果没有石头剩下,就返回 0

输入格式

输入两行:

第一行包含一个整数 n ,代表有 n 个石块;

第二行包含 n 个整数,代表每个石块的重量,以空格隔开。

输出格式

一行,包含⼀个整数,代表剩余的石块的重量。

输入输出样例

输入 #1
6
2 7 4 1 8 1
输出 #1
1
输入 #2
4
1 8 8 10
输出 #2
5
输入 #3
15
415 959 57 498 108 754 849 143 733 245 680 897 848 61 912
输出 #3
21
C++ 编辑器
输入
输出