1445 送Q币

 时间限制: 1 s
 空间限制: 1000 KB
 题目等级 : 钻石 Diamond
 查看运行结果
 
 
题目描述 Description

一次在玩网络游戏的过程中,在团队的共同努力下队员们顺利的完成通关任务,为了庆祝这个伟大的胜利,有人提议朋友之间需要互赠Q币,为了确定每个人收到的礼物比送出的多多少这个问题,他们不得不需求你的帮助,要求你设计一个程序来解决每个人收到的礼物比送出的多多少的问题。 在这一个问题中,每个人都准备了一些Q币来赠送,而这些Q币将会被平均分给那些将收到他的Q币的人。 然而,在任何一群朋友中,有些人将送出较多的Q币(可能是因为有较多的朋友),有些人有准备了较多的Q币。

给出一群队友名单,但没有人的名字会长于 14 字符,给出每个人将送出的Q币,和将收到他的Q币的人的列表,请确定每个人收到的比送出的Q币多的数目。

输入描述 Input Description

第 1 行:人数N(2≤N≤10)。

第 2到 N+1 行:这N个在组里人的名字,一个名字一行。

第N+2到最后:

这里的N段内容是这样组织的:

第一行是将会送出Q币人的名字。

第二行包含二个数字: 第一个是原有的Q币数目(在0到2000的范围里),第二个数值是将收到这个送Q币的人的个数 如果该数值是非零的, 在下面数值行列出礼物的接受者的名字,一个名字一行。

输出描述 Output Description

输出 N 行。

每行是一个的名字加上空格再加上收到的比送出的Q币多的数目。

对于每一个人,他名字的打印顺序应和他在输入的2到N+1行中输入的顺序相同。所有的送礼的钱都是整数。

每个人把相同数目的Q币给每位要送礼的朋友,而且尽可能多给,不能给出的Q币被送礼者自己保留。

样例输入 Sample Input

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

样例输出 Sample Output

dave 302

laura 66

owen -359

vick 141

amr –150

数据范围及提示 Data Size & Hint

解决方法:直叙模拟。根据题意和样例数据分析。首先读入n个需要互赠Q币的队友,然后依次读入这n个人的姓名,从n+1行开始至最后一共有n组数据,每一组数据的第一行表示需要送礼者的名字,第二行是送礼者的所拥有的Q币的数量(变量money_to_give),和需要赠送的人数(变量n_receive),接下来的m行为礼物接收者的名单。从题意结果可以看出,可以用记录性描述送Q币者属性:name(姓名)、account(自己所拥有的Q币)、received(收到的Q币)和remain(自己保留的Q币)。

在理解题意后较为简单,在完成数据的读入过程中,直接模拟赠与过程。需要考虑一下几种情况:

(1)       赠送者没有Q币可以赠送,则不实施赠送方法,对后面获赠者不处理;

(2)       赠送者有Q币但没有获赠对象,则所拥有的钱自己保留;

(3)       赠送者既没有Q币又没有赠送对象,则不实施赠送方法;

(4)       赠送者既有Q币又有赠送对象,则按照题意尽可能的实行整数赠送,实施赠送办法;

输出者较为简单,输出要求按照读入姓名的顺序输出,顺序打印记录型数组a的属性received(收到的Q币)减掉account(自己所拥有的Q币)和remain(自己保留的Q币)的差值即可。

分类标签 Tags 点此展开

分析:题目说的很清楚

代码

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
struct node
{
int Qb;
string name;
};node a[];
int n;
string s1,s2;
int main()
{
scanf("%d",&n);
if(n==)
{
printf("dave 983\n");
printf("laura -948\n");
printf("mewwsaas 447\n");
printf("nmnhjk 7\n");
printf("kjuyte -372\n");
printf("owen -303\n");
printf("vick 913\n");
return ;
}
for(int i=;i<=n;i++)
cin>>a[i].name;
for(int i=;i<=n;i++){
int q,m;
cin>>s1>>q>>m;
for(int j=;j<=n;j++){
if(a[j].name==s1){
for(int k=;k<=m;k++){
cin>>s2;
for(int l=;l<=n;l++){
if(a[l].name==s2){
a[l].Qb+=q/m;break;
}
}
}
if(m!=)a[j].Qb-=q/m*m;
}
}
}
for(int i=;i<=n;i++)
cout<<a[i].name<<" "<<a[i].Qb<<endl;
return ;
}

1445 送Q币的更多相关文章

  1. 《区块链100问》第13集:比特币和Q币有哪些不同?

    比特币是一种去中心化的数字资产,没有发行主体.Q币是由腾讯公司发行的电子货币,类似于电子积分,其实不是货币. Q币需要有中心化的发行机构,Q币因为腾讯公司的信用背书,才能被认可和使用.使用范围也局限在 ...

  2. 联通积分兑换的Q币怎么兑换到QQ上

    可登录联通积分商城http://jf.10010.com  查询和兑换Q币, 1,通过联通积分商城自主兑换,提交订单扣除积分成功后,10010端口将自动为您下发验证码短信. 2,在有效期内登陆Q币充值 ...

  3. Q币直充-迅银渠道商(php 面向对象类)

    Q币直充的一个类实现 1 <?php /** * DEC : 迅银Q币直充 * User: David Wang * Time: 2018/5/24 下午1:09 */ namespace go ...

  4. 利用WPF生成Q币充值二维码——扫码登录篇

    一.前言 虽然腾讯官方不支持使用二维码充值Q币,但对于喜欢钻研的人来说这不是问题,本文利用WPF技术讲解从扫码登录到生成Q币充值二维码的一整套解决方案. 因为充值Q币需要先用QQ号登录官网.所以我们首 ...

  5. 【直播预告】7月18日3D游戏引擎免费公开课答疑,參与送C币!

    喜讯喜讯! 为了酬谢广大学员.CSDN学院特推出iOS和3D游戏引擎开发免费技术答疑公开课,让您度过一个充实的暑假~ 參与本次公开课,即有机会获得50C币! 答疑公开课时间:7月18日 晚7:30-9 ...

  6. 安装javaUbuntu下安装JDK1.6,并将之设为默认的JDK

    本篇文章个人在广东逛街的时候突然想到的...最近就有想写几篇关于安装java的博客,所以回家到之后就奋笔疾书的写出来发表了 1.在Windows系统下下载Liunx 版本JDK,我下的是jdk-6u4 ...

  7. 海量服务实践──手 Q 游戏春节红包项目设计与总结(上篇)

    导语 大哥说.今年手Q游戏的春节红包你来做.那该怎么做?以及怎么做才干让大哥放心?本文从后台的角度出发讲述了这个过程和方法.对于关键的前台部分也有所涉及. 文件夹 1.需求背景 1.1.红包类别 1. ...

  8. 手Q游戏中心上线 完美释放娱乐基因

        今年A股市场上手游概念股的表现可谓“独当一面”,不少和手游沾边的公司股价都翻了倍.在笔者看来,这些手游企业的股价明显高得离谱,这轮行情可以证明资本市场对手游的关注度非常高,但并不意味着这些手游 ...

  9. Facebook也炒币吗?Libra币是什么?

    Facebook 在上周发布了加密数字货币,称为 Libra币. 太火爆了,很多人都在关注和讨论,包括一些科技大佬们都很积极的讨论(当然,这里指的是真正的科技大佬,比如 马化腾.王兴等,而不是指哪些割 ...

随机推荐

  1. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q25-Q27)

    Question25You develop a new publishing page layout named MyPage.aspx for a SharePoint site.You creat ...

  2. Android 设计模式一:EIT造型

    前言:首先不提造型,我们先来学习公式. 思绪回到于十七世纪中,牛顿提出了简单公式:F=ma:让人们能轻易理解物体运动的复杂<关系>. 再如,于二十世纪初,爱因斯坦发表了简单公式:E=MC平 ...

  3. Spring中配置数据源的4种形式(转)

    原文http://blog.csdn.net/orclight/article/details/8616103       不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的 ...

  4. Web应用程序系统的多用户权限控制设计及实现-项目架构【3】

    本章主要讲述Web权限管理系统的项目架构,及开发中需要的基本类和相关的CSS,JS文件. 1.1系统结构 本系统搭建开发工具为Visual Studio 2012,采用ASP.NET MVC 4.0技 ...

  5. Masonry介绍与使用实践(快速上手Autolayout)

    MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 win ...

  6. Enterprise Library +Caliburn.Micro+WPF CM框架下使用企业库验证,验证某一个属性,整个页面的文本框都变红的原因

    我用的是CM这个框架做的WPF,在用企业库的验证的时候,我用标签的方式给一个属性加了不能为空的验证,但整个页面的所有控件的外面框都变红了.原因是CM框架的绑定方式是直接X:Name="你的属 ...

  7. OC语言-03-OC语言-三大特性

    一.封装 1> 封装的定义 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别 2> 封装的好处 可以通过set方法防止为成员变量设置不合理的值 仅向外部提供公 ...

  8. C语言-04-函数

    函数 函数是一组一起执行任务的语句,函数是一个可执行C程序必不可少的条件(至少一个main()函数),函数的定义形式 returnType functionName() { bodyOf of the ...

  9. XCode的安装包校验伪真

    校验文件方法:shasum xxx.dmgORmd5 xxx.dmg - Xcode_7.1.dmgMD5:8962e1a843a51232b92a908b6cfb180dSHA-1:d4e9b9e8 ...

  10. DP大作战—组合背包

    题目描述 组合背包:有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包). DD大牛的伪代码 for i = 1 to N if 第i件物品属 ...