はまやんはまやんはまやん

hamayanhamayan's blog

Grade System [CSAcademy #60 A]

https://csacademy.com/contest/round-60/task/grade-system/

N個の配列がある。
この配列から最小の数と最大の数を1つずつ取り除く。
残ったN-2個の平均を答えよ。
なお、平均はその平均以下の最大の整数で答えよ。

解法

「平均はその平均以下の最大の整数で答えよ」とあるが、つまり切り捨てで答えよということ。
N個の配列の総和から最大数と最小数を引いて、(N-2)で割ると答え。

int N, A[101];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) cin >> A[i];

    int sm = 0, mi = 1010, ma = -1;
    rep(i, 0, N) {
        sm += A[i];
        mi = min(mi, A[i]);
        ma = max(ma, A[i]);
    }
    sm -= mi + ma;
    int ans = sm / (N - 2);
    cout << ans << endl;
}