2020牛客暑期多校训练营(第五场)F

DPS

https://ac.nowcoder.com/acm/contest/5670/F

题目描述

  When you are playing multiplayer games, you may want to show that you are the MVP of your team or blame the one always wandering and watching away from the storm center. Well, there're statistics that show you preformance, but sometimes numbers speak softer than charts. Now, you're hired to write a program that output ASCII art histograms showing damage dealt to enemies.
  There are players in the game. Given that the -th player dealt damage to enemies where is granted, you need to calculate the number of spaces in the bar by the following foluma: . Instead of formal definition of bar description, we will give an example. For some player i whose and , the bar is shown as:

+-------+
|       |777
+-------+

  Moreover, you have to mark the player with maximal damage dealt to enemies by replacing the last space into *. If there're multiple maximum, mark all of them.
  See samples for more ideas.

输入描述

  The first line contains one integer .
  The next line each contains one integer, the -th line contains .
  It's granted that .

输出描述

   lines, each lines denote a bar in the correct format.

示例1

输入

4
50
40
50
0

输出

+--------------------------------------------------+
|                                                 *|50
+--------------------------------------------------+
+----------------------------------------+
|                                        |40
+----------------------------------------+
+--------------------------------------------------+
|                                                 *|50
+--------------------------------------------------+
++
||0
++

示例2

输入

5
1676
4396
2200
443
556

输出

+--------------------+
|                    |1676
+--------------------+
+--------------------------------------------------+
|                                                 *|4396
+--------------------------------------------------+
+--------------------------+
|                          |2200
+--------------------------+
+------+
|      |443
+------+
+-------+
|       |556
+-------+

分析

  按照题意模拟即可。
  需要注意细节:计算 时会爆 ;最大值在直方图中要作出标记; 要紧靠直方图输出,并在第二行输出。

代码

/******************************************************************
Copyright: 11D_Beyonder All Rights Reserved
Author: 11D_Beyonder
Problem ID: 2020牛客暑期多校训练营(第五场) Problem F
Date: 8/16/2020
Description: Simulation
*******************************************************************/
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=105;
int n;
ll d[N];
bool is[N];
int s[N];
int main(){
    ll MAX=-1;
    int i,j;
    cin>>n;
    for(i=1;i<=n;i++){
        scanf("%lld",&d[i]);
        MAX=max(d[i],MAX);
    }
    for(i=1;i<=n;i++){
        is[i]=d[i]==MAX;//是最大值
        s[i]=ceil(50.0/MAX*d[i]);
    }
    for(i=1;i<=n;i++){
        //第一行
        putchar('+');
        for(j=1;j<=s[i];j++){
            putchar('-');
        }
        putchar('+');
        putchar('\n');
        //第二行
        putchar('|');
        for(j=1;j<=s[i]-is[i];j++){
            putchar(' ');
        }
        if(is[i]) putchar('*');
        putchar('|');
        printf("%lld\n",d[i]);
        //第三行
        putchar('+');
        for(j=1;j<=s[i];j++){
            putchar('-');
        }
        putchar('+');
        putchar('\n');
    }
    return 0;
}
牛客暑期多校训练营题解 文章被收录于专栏

收集牛客暑期多校训练营的题解

全部评论

相关推荐

行云流水1971:这份实习简历的优化建议: 结构清晰化:拆分 “校园经历”“实习经历” 板块(当前内容混杂),按 “实习→校园→技能” 逻辑排版,求职意向明确为具体岗位(如 “市场 / 运营实习生”)。 经历具象化:现有描述偏流程,需补充 “动作 + 数据”,比如校园活动 “负责宣传” 可加 “运营公众号发布 5 篇推文,阅读量超 2000+,带动 300 + 人参与”;实习内容补充 “协助完成 XX 任务,效率提升 X%”。 岗位匹配度:锚定目标岗位能力,比如申请运营岗,突出 “内容编辑、活动执行” 相关动作;申请市场岗,强化 “资源对接、数据统计” 细节。 信息精简:删减冗余表述(如重复的 “负责”),用短句分点,比如 “策划校园招聘会:联系 10 + 企业,组织 200 + 学生参与,到场率达 85%”。 技能落地:将 “Office、PS” 绑定经历,比如 “用 Excel 整理活动数据,输出 3 份分析表;用 PS 设计 2 张活动海报”,避免技能单独罗列。 优化后需强化 “经历 - 能力 - 岗位需求” 的关联,让实习 / 校园经历的价值更直观。 若需要进一步优化服务,私信
实习,投递多份简历没人回...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务