UVa 119|Greedy Gift Givers|STL|map|水题
2017-10-05 23:40
676 查看
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=55
(由于废话太多就翻译到这里了。。)
所有的人名都是小数,不会超过12个字符。
每组数据之间用一个空行隔开。
题目大意
在这个问题中,有一些要送礼物的好朋友,计算他们给出去的礼物的价值比收到的礼物的价值多多少(如果少的话结果为负数)。(由于废话太多就翻译到这里了。。)
输入
输入包含多组数据,对于每组数据,第一行一个整数n(n≤10)表示人的数目。接下来一行n个字符串表示人名。接下来n行每行一开始一个字符串表示本行描述哪个人的信息,后面跟着两个整数,表示其准备送mi(mi≤2000)价值的东西,要给pi个人,后面跟着pi个人名,表示要均分(整数除法,即每个人m[i] div p[i],剩下的没送出去的留着)送给这些人。
所有的人名都是小数,不会超过12个字符。
输出
对于每组数据,输出n行,每行一个字符串表示人名和一个数字表示这个人最后有多少价值的东西。人名顺序按最开始给人名的顺序排序。每组数据之间用一个空行隔开。
样例输入
5 dave laura owen vick amr dave 200 3 laura owen vick owen 500 1 dave amr 150 2 vick owen laura 0 2 amr vick vick 0 0 3 liz steve dave liz 30 1 steve steve 55 2 liz dave dave 0 2 steve liz
样例输出
dave 302 laura 66 owen -359 vick 141 amr -150 liz -3 steve -24 dave 27
题解
用map<string,int>维护每个人最后有多少价值即可。
#include <iostream> #include <vector> #include <map> #include <string> #define rep(i,j,k) for(i=j;i<k;++i) using namespace std; int main() { int T = 0, n, i, j, money, people; string name; while (cin >> n) { map<string, int> balance; vector<string> names; rep(i,0,n) { cin >> name; balance[name] = 0; names.push_back(name); } rep(i,0,n) { cin >> name; cin >> money >> people; if (people == 0) continue; int gift = money / people; balance[name] -= gift * people; rep(j,0,people) { cin >> name; balance[name] += gift; } } if (++T > 1) cout << endl; rep(i,0,n) cout << names[i] << " " << balance[names[i]] << endl; } return 0; }
相关文章推荐
- uva 119 Greedy Gift Givers
- UVa 119 - Greedy Gift Givers
- UVa Problem 119 - Greedy Gift Givers
- 119 - Greedy Gift Givers
- UVa 10282 / POJ 2503 Babelfish / ZOJ 1109 Language of FatMouse (STL&map)
- UVa 156 STL之map的运用
- UVa 156 Ananagrams(STL,map)
- UVA 119.Greedy Gift Givers
- Compound Words UVA - 10391, map用法, STL
- UVA 10282 Babelfish STL的map
- UVa - 156 - Ananagrams(STL - 映射map)
- UVa 156 Ananagrams(STL,map)
- uva 230 Borrowers 习题5-8 (STL string,map练习)
- UVa 156 Ananagrams 【STL】【map】
- (POJ3096)Surprising Strings <STL-map 水题>
- UVA12096 the SetStack Computer(STL中,map,set,vector,stack联合应用)
- uva-1594 - Ducci Sequence c++, stl练习,map
- 例题5-4 UVa156 Ananagrams(STL:map)
- Uva10474-STL水题-白书
- STL语法——映射:map 反片语(Ananagrams,UVa 156)