zoukankan      html  css  js  c++  java
  • 1007.奥运排序问题

    题目描述:                       

    按要求,给国家进行排名。

    输入:                       
    有多组数据。 第一行给出国家数N,要求排名的国家数M,国家号从0到N-1。 第二行开始的N行给定国家或地区的奥运金牌数,奖牌数,人口数(百万)。 接下来一行给出M个国家号。
    输出:                       
    排序有4种方式: 金牌总数 奖牌总数 金牌人口比例 奖牌人口比例 对每个国家给出最佳排名排名方式 和 最终排名 格式为: 排名:排名方式 如果有相同的最终排名,则输出排名方式最小的那种排名,对于排名方式,金牌总数 < 奖牌总数 < 金牌人口比例 < 奖牌人口比例 如果有并列排名的情况,即如果出现金牌总数为 100,90,90,80.则排名为1,2,2,4. 每组数据后加一个空行。
    样例输入:                       
    4 4
    4 8 1
    6 6 2
    4 8 2
    2 12 4
    0 1 2 3
    4 2
    8 10 1
    8 11 2
    8 12 3
    8 13 4
    0 3
    样例输出:                       
    1:3
    1:1
    2:1
    1:2


    #include<iostream>
    using namespace std;
    
    
    struct paixu{
        int i;
        int j;
    }paixu[5];
    
    struct guojia{
        int gold;
        int medal;
        int people;
        double goldper;
        double medalper;
    }guo[1000];
    
    int paixu1(int x,int n){
        int num=1;
        for(int i=0;i<n;i++){
             if(guo[i].gold>guo[x].gold) num++;
        }
        return num;
    }
    
    int paixu2(int x,int n){
        int num=1;
        for(int i=0;i<n;i++){
             if(guo[i].medal>guo[x].medal) num++;
        }
        return num;
    }
    
    int paixu3(int x,int n){
        int num=1;
        for(int i=0;i<n;i++){
             if(guo[i].goldper>guo[x].goldper) num++;
        }
        return num;
    }
    
    int paixu4(int x,int n){
        int num=1;
        for(int i=0;i<n;i++){
             if(guo[i].medalper>guo[x].medalper) num++;
        }
        return num;
    }
    
    
    
    
    void mim(){
        if(paixu[1].j<=paixu[2].j) {
            if(paixu[1].j<=paixu[3].j){
                if(paixu[1].j<=paixu[4].j){
                    paixu[0]=paixu[1];
                    return;
                }
                else {
                    paixu[0]=paixu[4];
                    return;
                }
            }
            else if(paixu[3].j<=paixu[4].j){
                paixu[0]=paixu[3];
                return;
            }
            else {
                paixu[0]=paixu[4];
                return;
            }
        }
        else if(paixu[2].j<=paixu[3].j){
            if(paixu[2].j<=paixu[4].j){
                paixu[0]=paixu[2];
                return;
            }
            else {
                paixu[0]=paixu[4];
                return;
            }
        }
        else if(paixu[3].j<=paixu[4].j){
            paixu[0]=paixu[3];
            return;
        }
        else {
            paixu[0]=paixu[4];
            return;
        }
    }
    
    int main(){
        int n,m,i,a;
        while(cin>>n>>m){
            for(i=0;i<n;i++){
                cin>>guo[i].gold>>guo[i].medal>>guo[i].people;
                guo[i].goldper=guo[i].gold/guo[i].people;
                guo[i].medalper=guo[i].medal/guo[i].people;
            }
            for(i=0;i<m;i++){
                cin>>a;
                paixu[1].i=1;
                paixu[1].j=paixu1(a,n);
                paixu[2].i=2;
                paixu[2].j=paixu2(a,n);
                paixu[3].i=3;
                paixu[3].j=paixu3(a,n);
                paixu[4].i=4;
                paixu[4].j=paixu4(a,n);    
                mim();
                cout<<paixu[0].j<<":"<<paixu[0].i<<endl;                    
            }
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    grafana,graphite,influxdb with docker
    InfluxDB通过HTTP API
    REDIS 六. 修复方案
    linux Service start
    应该掌握的JQuery的7个效果
    webssh: gateone
    Linux下使用timedatectl命令时间时区操作详解
    Linux下使用date命令查看和修改时间
    Linux下使用ntpdate进行时间同步
    nginx内置变量
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9736615.html
Copyright © 2011-2022 走看看