测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A17920. 阅读积分分享社团组织开展阅读积分分享活动。每位成员都准备了一些积分赠送其他成员,这些积分平均分给对应的受赠予的人。给出社团成员姓名以及对应的现有积分、准备赠送的积分、接收赠送的社团成员信息,请计算每位社团成员的当前积分。

填空题 困难

题目描述

阅读积分分享

社团组织开展阅读积分分享活动。每位成员都准备了一些积分赠送其他成员,这些积分平均分给对应的受赠予的人。给出社团成员姓名以及对应的现有积分、准备赠送的积分、接收赠送的社团成员信息,请计算每位社团成员的当前积分。

输入格式:

第1行:人数n,2≤ n≤10

第2到n+1行:每行包含一个字符串,表示每个人的姓名;一个整数,表示现有的积分。互相之间用空格隔开。

第n+2到最后,描述某个人赠送积分的信息:

某个人的第(1)行是赠送积分的同学姓名。

某个人的第(2)行包含2个数字:分别表示准备赠送积分数值v(0<=v<=2000),接受赠予的同学人数x ,互相之间用空格隔开。

如果x是非零的, 在接下来x行,列出每位接受赠予的同学姓名,一个姓名一行。

输入样例:

3
alien 5267
mars 3098
moon 2761
mars
1500 2
alien
moon
alien
500 1
mars
moon
0 0

输出格式:

输出共n行,

每行包含一个字符串表示社团成员的姓名,和现有的积分值。互相之间用空格隔开。

输出样例:

alien 5517
mars 2098
moon 3511

#代码如下:

n=int(input())
name=[];score=  ①        
for i in range(1,n+1):
    a,b = input().split(' ',1)
    score[a]=int(b)
for i in range(1,n+1):
    s=input()
    v,x= map(int, input().split())
    if (x>0):
       w=   ②        
       score[s]-=w*x
    for j in range(1,x+1):
       t=input()
       score[t]+=    ③        
for i in score.keys():
    print(i,    ④    )

参考答案

n=int(input()) name=[];score={} for i in range(1,n+1): a,b = input().split(' ',1) score[a]=int(b) for i in range(1,n+1): s=input() v,x= map(int, input().split()) if (x>0): w=v//x score[s]-=w*x for j in range(1,x+1): t=input() score[t]+=w for i in score.keys(): print(i,score.get(i))
上一题 下一题