红包的收益(人人网2017春招真题)
来源:互联网 发布:mysql todays 编辑:程序博客网 时间:2024/05/01 00:58
如你所知,中国素来有发红包的习俗。
新年要到了,小明想要知道朋友圈里每个人的收益。
每个人有mi数量的钱用来发红包,并且这笔钱会平均地发给ki个人(收益得到的钱不再发红包)。
而且发给每个人的钱都是整数。如果不能整除,发红包的人保留mi mod ki的钱。
输入
第1行,一个整数n,2<=n<=10,小明的n个朋友。
第 2到n+1行每行一个字符串,第i+1行表示第i个人的名字。
接下来n段:
每段第一行是一个字符串,表示发红包的人的名字。
第二行为两个数mi,ki。含义如上。
接下来ki行,每行一个字符串表示被发红包的人的名字。
样例输入
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
输出
n行,每行一个字符串和一个整数,分别表示第i个人的名字和收益。
样例输出
dave 302
laura 66
owen -359
vick 141
amr -150
时间限制
C/C++语言:1000MS
其他语言:3000MS
内存限制
C/C++语言:65536KB
其他语言:589824KB
代码如下:
import java.util.ArrayList;import java.util.HashMap;import java.util.Scanner;class Friend{ private String name; private int sum; private int receive; private int cnt; public void Set(int sum, int cnt) { this.sum = sum; this.cnt = cnt; } public Friend(String name){ this.name = name; this.sum = 0; this.receive = 0; } public void Receive(int num){ this.receive += num; } public void Print(){ System.out.println(this.name+" "+this.receive); } public String getName() { return name; } public int getSum() { return sum; } public int getReceive() { return receive; } public void setReceive(int receive) { this.receive = receive; } public void Send(Friend friend){ friend.Receive(this.sum/this.cnt); }}public class Main { static int N; static ArrayList<Friend> friends_set = new ArrayList<>(); static HashMap<String,Friend> friends_map= new HashMap<>(); public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); N = in.nextInt(); for ( int i = 0 ; i < N ; i++){ String name = in.next(); Friend tmp = new Friend(name); friends_set.add(tmp); friends_map.put(name, tmp); } for ( int i = 0 ; i < N ; i++){ String name = in.next(); int sum = in.nextInt(); int cnt = in.nextInt(); Friend sender = friends_map.get(name); sender.Set(sum,cnt); if ( cnt == 0 && sum == 0){ continue; }else{ for ( int k = 0 ; k < cnt ; k++){ String receiver_name = in.next(); Friend receiver = friends_map.get(receiver_name); sender.Send(receiver); } int send_receive = sender.getReceive(); sender.setReceive(send_receive-sum+sum%cnt); } } for ( int i = 0 ; i < friends_set.size() ; i++){ friends_set.get(i).Print(); } in.close(); }}
0 0
- 红包的收益(人人网2017春招真题)
- 波形图(人人网2017春招真题)
- 人人网的架构
- 人人网的bug
- 人人网外挂的java源代码(自动登录人人网并访问其他人主页)
- Android百度地图和人人网简单的应用(获取路线,分享到人人)
- 做网赚放什么广告收益最高?我的网赚收益晒晒了!
- 关于人人网的新闻
- 人人网2017实习-求数列的和
- ios应用接入人人网(分享到人人网)
- 一些收益的帖子
- 收益曲线的构造
- 稳定的收益预期
- 股市的平均收益
- 记录编写人人网应用的文(1)
- 收益
- 微信红包问题:找出某个出现次数超过红包总数一半的红包的金额(面试题)
- 红包分配算法(年后写的)
- java反射、getClass()、getSuperclass()、getGenericSuperclass()
- 史上最全的变量、作用域和内存问题
- 中国空巢青年达2000万 一线城市成单身人群聚集地
- jdbc中statement的一些细节
- tensorflow 错误杂记
- 红包的收益(人人网2017春招真题)
- 通过MyEclipse生成Hibernate类文件和hbm.xml文件,或者annotation文件
- angular基础
- CIPS青工委学术专栏第15期 | 基于知识的智能问答技术
- 微信支付(JsApi)总结
- 自定义控件
- 简单学习sublime工具
- Javascript数据结构算法之数组基础篇
- 多线程知识点 考点汇总-(上)