zoukankan      html  css  js  c++  java
  • Codeforces Round #115 B. Plane of Tanks: Pro 水题

    B. Plane of Tanks: Pro

    Time Limit: 20 Sec

    Memory Limit: 256 MB

    题目连接

    http://codeforces.com/contest/175/problem/B

    Description

    Vasya has been playing Plane of Tanks with his friends the whole year. Now it is time to divide the participants into several categories depending on their results.

    A player is given a non-negative integer number of points in each round of the Plane of Tanks. Vasya wrote results for each round of the last year. He has n records in total.

    In order to determine a player's category consider the best result obtained by the player and the best results of other players. The player belongs to category:

    • "noob" — if more than 50% of players have better results;
    • "random" — if his result is not worse than the result that 50% of players have, but more than 20% of players have better results;
    • "average" — if his result is not worse than the result that 80% of players have, but more than 10% of players have better results;
    • "hardcore" — if his result is not worse than the result that 90% of players have, but more than 1% of players have better results;
    • "pro" — if his result is not worse than the result that 99% of players have.

    When the percentage is calculated the player himself is taken into account. That means that if two players played the game and the first one gained 100 points and the second one 1000 points, then the first player's result is not worse than the result that 50% of players have, and the second one is not worse than the result that 100% of players have.

    Vasya gave you the last year Plane of Tanks results. Help Vasya determine each player's category.

    Input

    The first line contains the only integer number n (1 ≤ n ≤ 1000) — a number of records with the players' results.

    Each of the next n lines contains a player's name and the amount of points, obtained by the player for the round, separated with a space. The name contains not less than 1 and no more than 10 characters. The name consists of lowercase Latin letters only. It is guaranteed that any two different players have different names. The amount of points, obtained by the player for the round, is a non-negative integer number and does not exceed 1000.

    .

    Output

    Print on the first line the number m — the number of players, who participated in one round at least.

    Each one of the next m lines should contain a player name and a category he belongs to, separated with space. Category can be one of the following: "noob", "random", "average", "hardcore" or "pro" (without quotes). The name of each player should be printed only once. Player names with respective categories can be printed in an arbitrary order.

    Sample Input

    5
    vasya 100
    vasya 200
    artem 100
    kolya 200
    igor 250

    Sample Output

    4
    artem noob
    igor pro
    kolya random
    vasya random

    HINT

    题意

    给你n个数据,每个数据有名字和分数,但是只用考虑最高分数

    如果这个人的分数比99%的人都高,那就是pro

    。。。。(然后读题,读题

    然后让你输出有多少个人,并且把每个人获得的称号输出

    题解:

    水题咯,直接n^2就好了~

    代码:

    #include<iostream>
    #include<stdio.h>
    #include<map>
    #include<iostream>
    using namespace std;
    
    map<string,int> H;
    string s;
    int p;
    int main()
    {
        int n;scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            cin>>s>>p;
            H[s]=max(p,H[s]);
        }
        map<string,int>::iterator it1;
        cout<<H.size()<<endl;
        for(it1=H.begin();it1!=H.end();it1++)
        {
            map<string,int>::iterator it2;
            int p = 0;
            for(it2=H.begin();it2!=H.end();it2++)
                if(it1->second>=it2->second)
                    p++;
            p = p * 100 / H.size();
            if(p>=99)cout<<it1->first<<" pro"<<endl;
            else if(p>=90)cout<<it1->first<<" hardcore"<<endl;
            else if(p>=80)cout<<it1->first<<" average"<<endl;
            else if(p>=50)cout<<it1->first<<" random"<<endl;
            else cout<<it1->first<<" noob"<<endl;
        }
    }
  • 相关阅读:
    如何使用wei-ui框架,wei-ui框架有哪些组件
    微信小程序tabbar如何配置
    如何使用promise封装wx.request()、
    微信有哪些小程序内置组件,目录结构
    uni-app生命周期
    vue任意关系组件通信与跨组件监听状态 vue-communication
    vue父子组件状态同步的最佳方式续章(v-model篇)
    webstorm中emmet展开a标签和行内元素不换行的解决办法
    深入理解 vue 中 scoped 样式作用域的规则
    javascript事件环微任务和宏任务队列原理
  • 原文地址:https://www.cnblogs.com/qscqesze/p/4991364.html
Copyright © 2011-2022 走看看