红包的收益(笔试)

Posted 追求沉默者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红包的收益(笔试)相关的知识,希望对你有一定的参考价值。

          题目描述

           如你所知,中国素来有发红包的习俗。

          新年要到了,小明想要知道朋友圈里每个人的收益。

          每个人有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

    

#include<iostream>
#include<string>
#include<map>
#include<vector>
using namespace std;
int main()
{
    int n;
    int ss[10][2];
    map<string, int> mapp;
    string sss[10];//记录原始的名字输入顺序
    string name[10];//记录要发红包的人
    string str[10][10];//记录某个人要发给某些人

    while (cin >> n)
    {
        for (int i = 0; i < n; ++i)
        {
            cin >> sss[i];
            mapp.insert(pair<string, int>(sss[i], 0));
        }
        for (int i = 0; i < n; ++i)
        {
            cin >> name[i];
            cin >> ss[i][0] >> ss[i][1];
            for (int j = 0; j < ss[i][1]; ++j)
                cin >> str[i][j];
        }
        for (int i = 0; i < n; i++)
        {
            if (ss[i][1])
            {
                int s = ss[i][0] / ss[i][1];
                int t = ss[i][0] % ss[i][1];
                for (int j = 0; j < ss[i][1]; ++j)
                    mapp[str[i][j]] += s;
                mapp[name[i]] += t;
                mapp[name[i]] -= ss[i][0];
            }
        }
        for (int i = 0; i < n; i++)
        {
            cout << sss[i] << " " << mapp[sss[i]] << endl;
        }
    }
    return 0;
}

 

以上是关于红包的收益(笔试)的主要内容,如果未能解决你的问题,请参考以下文章

尴尬的红包

撸一个拆红包动画

2021贝壳找房春招C++工程师笔试卷2

股市买卖问题(招银网络科技笔试编程题)

关于年会抢红包游戏的一个思考

程序员通过CSDN如何获取收益