[Problem] USACO 1.1.2 - Greedy Gift Givers

[URL] http://ace.delos.com/usacoprob2?a=S95TFRgcK4B&S=gift1

[General Description]

有一群朋友要互送礼物。他们每个人都准备了钱用来送礼,并且这些钱将会被平均用于那些将要收到他的礼物的人。然而在这群人中,有些人要送出较多的礼物,有些人准备了较多的钱。给出每个人的名字、总资金和送礼目标的列表,确定每个人收到的礼物价值比送出去的钱多的数目。

[Keypoints]

"Ad-hoc"  solution;Usage of struct/record

[Analysis]

简单题目,用结构体可以很方便的解决。

令数组get和give分别代表每个人的收入和支出,用数组name记录每个人的名字。对于每个送礼人i,查找他的送礼目标j,那么有:

get[j]=get[j]+give[i]/N ...(1)

其中N代表i的所有送礼目标j的数目。

而后有:get[i]=get[i]+give[i]%N ...(2)

输出get[i]-give[i]即为结果。

[Source Code]

PASCAL,see Code category.

[Appendix]

在这里贴的第一个题目居然是USACO水题...还是Pascal码...有点高中生感觉啊=。=||

posted on 2011-02-07 21:47  LittleMagic  阅读(153)  评论(0)    收藏  举报