测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A71489. 巨石阵

编程题 入门

题目描述

你在⼀个岛屿上,这个岛屿有⼀个神秘的巨石阵,据说在这个巨石阵中隐藏着传说中的宝藏。这个巨石阵由 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

说明/提示

【样例 1 解释】

先选出重量为 78 的两个石块进行粉碎,得到重量为 1 的石块,所以留下的石块重量分别为:2、4、1、1、1,

再选出重量为 24 的两个石块进行粉碎,得到重量为 2 的石块,所以留下的石块重量分别为:2、1、1、1,

接着选出重量为 21 的两个石块进行粉碎,得到重量为 1 的石块,所以留下的石块重量分别为:1、1、1,

最后任意选出重量为 1 的两个石块,将两个石块都粉碎,最终留下的石块重量为:1

这就是最后剩下那块石头的重量。

【数据说明】

对于 100\% 的数据,满足 1 \leq n \leq 301 \leq 每个石块的重量 \leq 1000