BOJ|1546号
Pythonプール N = int(input()) #과목 개수 입력
scr = list(map(int,input().split())) #점수 입력
print((sum(scr)*100/max(scr))/N)
#점수의 합을 최고 점수로 나누고 100을 곱한 것을 과목의 갯수로 나눔
N = int(input()) #과목 개수 입력
scr = list(map(int,input().split())) #점수 입력
print((sum(scr)*100/max(scr))/N)
#점수의 합을 최고 점수로 나누고 100을 곱한 것을 과목의 갯수로 나눔
NNN(科目数)
Ak=A1,A2,...,Am,...,AnA_k = A_1, A_2, ... , A_m , ... , A_nAk=A1,A2,...,Am,...,An
(各科目の点数[AAM mAMは科目最高点数])
Bk=(A1/Am)∗100,(A2/Am)∗100,...,(An/Am)∗100B_k = (A_1/A_m)*100, (A_2/A_m)*100, ..., (A_n/A_m)*100Bk=(A1/Am)∗100,(A2/Am)∗100,...,(An/Am)∗100
(最高スコアベースの新しいスコア)
Answer=∑Bk/N=((∑Ak)∗100/Am)/NAnswer = ∑B_k/N = ((∑A_k)*100/A_m)/NAnswer=∑Bk/N=((∑Ak)∗100/Am)/N
(BkB kBkでは、100/AM 100/AM 100/AM 100/AMが共通であるため、それらを束ねる)
コードではΣAkΣAkΣAkΣAkは
sum(scr)
であり、Am mAmはmax(scr)
である.従って(ΣAk)87100/AM(ΣAk)/N(ΣAk)*100/A m)/N(ΣAk)87100/AM)/Nは2479142
C++プール
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N;
int max = 0, sum = 0;
int arr[1001] = { 0, };
cin >> N;
for(int i=0;i<N;i++) {
int a;
cin >> a;
if (max < a) max = a;
arr[i] = a;
}
for (int i = 0; i < N; i++) {
sum += arr[i];
}
cout << (sum * 100 / max)/(float)N;
}
Reference
この問題について(BOJ|1546号), 我々は、より多くの情報をここで見つけました https://velog.io/@hrpp1300/BOJ-1546번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol