公式
A - フィギュアスケート予選 / Figure Skating Qualifying Round 解説
by
A - フィギュアスケート予選 / Figure Skating Qualifying Round 解説
by
kyopro_friends
問題文の指示通りに得点を計算すればよいです。
合計や最大値・最小値を求めるには、for 文を用いてもよいですが、標準ライブラリとして用意されている関数を用いるのが簡単です。
実装例 (C++)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n, m, k;
cin >> n >> m >> k;
int ans = 0;
for(int i=0; i<n; i++){
vector<int> s(m);
for(int j=0; j<m; j++) cin >> s[j];
int sum = accumulate(s.begin(), s.end(), 0);
int min = *min_element(s.begin(), s.end());
int max = *max_element(s.begin(), s.end());
int score;
if(m <= 2){
score = sum / m;
}else{
score = (sum - min - max) / (m - 2);
}
if(score < k){
ans++;
}
}
cout << ans << endl;
}
実装例 (Python)
N, M, K = map(int, input().split())
ans = 0
for _ in range(N):
S = list(map(int, input().split()))
if M <= 2:
score = sum(S) // M
else:
score = (sum(S)-min(S)-max(S)) // (M-2)
if score < K:
ans += 1
print(ans)
投稿日時:
最終更新:
