2535:Very Simple Problem

keyword

C++

概要

n(<100)チームがp(<100)問の問題に点数を付ける。半数より多いチームに(チーム内で)最も低い点数を付けられ、かつどのチームにも最も高い点数を付けられていない問題の番号を全て出力する問題。
実装ゲー。

int main(){
    int n, p;
    n = readint();
    p = readint();

    int simplest[100], hardest[100];
    int i, j;
    REP(i,p) simplest[i] = 0;
    REP(i,p) hardest[i] = 0;

    int ns[100];
    REP(i,n){
        REP(j,p) ns[j] = readint();
        int ma = *max_element(ns,ns+p);
        int mi = *min_element(ns,ns+p);
        REP(j,p){
            if(ns[j] == mi) simplest[j]++;
            if(ns[j] == ma) hardest[j]++;
        }
    }

    bool found = false;
    REP(i,n)if(!hardest[i] && 2*simplest[i]>n){
        if(found) putchar(' ');
        printf("%d",i+1);
        found = true;
    }

    if(!found)putchar('0');
    putchar('\n');

    return 0;
}