当前位置: 代码迷 >> 综合 >> HAUT OJ 1401: 点赞分能量
  详细解决方案

HAUT OJ 1401: 点赞分能量

热度:79   发布时间:2023-12-04 03:21:19.0

问题描述:

  淘宝双11点赞PK集能量在那段时间很是火热。短短几天,有人懂得了合作双赢的诀窍,也有人为了骗赞勾心斗角,为了一点钱浪费了很多时间。但不管怎么样,终于到了最后瓜分战队能量的时刻了。每人分得的能量是与此人为战队贡献的点赞数的多少(占全队的比例)成正比,贡献的越多,获得的能量越多。假设一个战队有5个人。

输入:

第一行是战队的总能量整数n(100<=n<=100000)
第2~6行分别是每个人 为战队贡献的点赞数x。 (0<= x <= 100000)

输出:

输出占一行,分别输出每个人分得的能量(向下取整),中间用空格隔开

样例输入:

8000
50
30
10
10
0

样例输出:

4000 2400 800 800 0

提示:

若两个人贡献的点赞相等,则他们分得的能量值相等。


原因分析:

1.注意 贡献全是0的情况 则平分.

2. 例子中给的贡献点,不是按100%算的,只是贡献点,只是给的正好等于100.


解决方案:

#include<stdio.h>
#include<math.h>int main()
{int n,a[6],s=0,b[6];int i;scanf("%d",&n);for(i=1;i<=5;i++){scanf("%d",&a[i]);s+=a[i];}if(s==0)for(i=1;i<=5;i++)b[i]=n/5;elsefor(i=1;i<=5;i++)b[i]=n*(a[i]*1.0/s);for(i=1;i<=5;i++)printf("%d ",b[i]);
}