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. Upgrading or Redeploying SharePoint 2010 Workflows

    While creating several State Machine SharePoint 2010 workflows using visual studio for a client I ha ...

  2. Oracle LPAD/RPAD函数在处理中文时的注意事项

    首先看下Oracle官方对函数的定义: The RPAD function returns an expression, right-padded to a specified length with ...

  3. 如何发布得到.ipa文件

    第一个方法: 如果都有证书的话,并且又不想把别人的机器添加到测试设备中,或者感觉获取UDID麻烦的话,那么就可以采用该方法了. 直接Archive应用程序: 右键显示包内容到product下复制里面的 ...

  4. 【读书笔记】iOS-查看一个软件ipa包的内容

    一,打开itunes----->我的iPhone应用程序. 二,右键点击app---->在Finder中显示---->出现下图所示界面. 三,将上图中的ipa包拷贝到桌面,如下图所示 ...

  5. 揭开智能配置上网(微信Airkiss)的神秘面纱

    本文介绍微信利用Airkiss技术对wifi设备进行智能配置上网的场景,并分析其实现的原理.这里再次说明,Airkiss只是用于配置上网,其跟微信硬件平台的通信流程和接入协议规范完全没有关系.一个wi ...

  6. ASP.NET操作Cookie

    1.生成Cookie public static void SetDataByCookie(string mainKey, string subKey, string value, string do ...

  7. SQL优化法则小记

    SQL优化技巧 1.选择最有效率的表名顺序(只在基于规则的优化器中有效): oracle的解析器按照从右到左的顺序处理 from 子句中的表名,from子句中写在最后的表(基础表 driving ta ...

  8. Eclipse 启动Tomcat 超时报错的解决方案

    在用eclipse开发项目  用tomcat发布项目的时候  会提示超时, Server Tomcat v7.0 Server at localhost was unable to start wit ...

  9. java加密算法--MD5加密和哈希散列带秘钥加密算法源码

    package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...

  10. JavaScript日期组件的实现

    旅游频道的开发中需要定义各种日期组件,有的是基本的日期选择, 这个基本日期只包含如下功能 左右翻(月) 点击天回填到输入域 点击“今天”,回填今天的日期到输入域 点击“关闭”,日期控件关闭 有的同时显 ...