问题标题: 酷町堂:1098 双胞胎的烦恼

0
0
已解决
张睿杰
张睿杰
初级天翼
初级天翼

1098   双胞胎的烦恼

题目描述 Description

有一对双胞胎(哥哥和妹妹),关系特别好,什么事都相互谦让。唯独每年到他们生日的那天,他们就会或多或少的有一些不愉快,渐渐的,成了他们的烦恼。 事情是这样的。每年到他们过生日的时候,亲朋好友都会给他们送来礼物,表示祝贺。有的人给他们买同样的礼物,有的人买不一样的礼物。每件礼物都有相应的价值。送礼物的人都没有明确说哪个礼物给谁,作为两个双胞胎,他们都希望自己收到的礼物价值高些。这不,今年生日所有的朋友送的礼物都是2本书(可能是希望他们好好读书吧),一本给哥哥,一本给妹妹。为了减少矛盾,双胞胎的妈妈让你来帮忙分配,要求使得两人所获得书本的价值和之间的差距尽可能的小(差距越小,双胞胎之间的不愉快程度越低)。 例如,有4个人送礼物,每个人的礼物价值(两个数)用一对括号括起来表示,如:(3,5),(7,11),(8,8),(2,9),可以把3,7,8,2分配给妹妹,其余的给哥哥,价值差为:5+11+8+9-3-7-8-2=13;也可以把3,7,8,9给妹妹,其余的给哥哥,价值差为:3+7+8+9-5-11-8-2=1,这是最好的方案。

输入描述 Input Description

第一行包含一个整数N(1≤N≤30),表示礼物的数量,接下来N行,每行两个整数,表示每份礼物两本书的价值(价值范围在1到30之间)。

输出描述 Output Description

输出一个非负整数,表示最小的价值差。

样例输入 Sample Input

4
3 5
7 11
8 8
2 9

样例输出 Sample Output

1

数据来源 Source

合肥市27届信息学竞赛第三题

跪求大佬解答,小渣渣也放弃3分,再刷4分题中


0
已采纳
尹宗鑫
尹宗鑫
新手守护
新手守护

1.算出差值

2.差值排序

3.

for(int k=2;k<=n;k++)
        if(a[1]>a[k])
            a[1]=a[1]-a[k];
        else a[1]=a[k]-a[1];

4.输出a[1]

0
0
我要回答