gotutiyan’s blog

競技プログラミングをやったりopenframeworksでお絵かきをしたりしています。

ACM-ICPC 「ICPC Score Totalizer Software」 解説

問題
ICPC Score Totalizer Software | Aizu Online Judge
n個の数字が入力されるので、その中から最大値と最小値を除いたものの中での平均を求めよう。

解説
n個の整数を全て足し合わせたsum、最小値を格納するmi、最大値を格納するmaを用意し、処理をします。
このとき、平均を求めるにあたり使用する合計値はsum-ma-miです。また、個数はn-2個です。
これらを元に、実装すれば正解になります。

#include <bits/stdc++.h>
 #define INF (int)1e9
using namespace std;

int main(){
    int n;
    while(cin>>n){
        if(n==0)break;
        int mi=INF,ma=0;
        int sum=0;
        for(int i=0;i<n;i++){
            int x; cin>>x;
            sum+=x;
            mi=min(mi,x);
            ma=max(ma,x);
        }
        cout<<(sum-ma-mi)/(n-2)<<endl;
    }
    
    return 0;
}