https://www.acmicpc.net/problem/5800
<요약>
중덕 고등학교 각 반의 학생들의 수학 시험 성적이 주어졌을 때, 최대 점수, 최소 점수, (내림차순 정렬 후)점수 차이를 구하는 프로그램을 작성하시오.
sort(arr, arr + m, greater<>()); //arr[0]은 최대값, arr[m-1]은 최소값
#include <iostream>
#include <algorithm>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,m;
cin >> n;
int arr[50] = { 0 }, brr[50] = { 0 };
for (int i = 1; i <= n; i++) {
cin >> m;
for (int j = 0; j < m; j++) {
cin >> arr[j];
}
sort(arr, arr + m, greater<>());
for (int j = 0; j < m - 1; j++) {
brr[j] = arr[j] - arr[j+1];
}
sort(brr, brr + (m - 1));
cout << "Class " << i << '\n';
cout << "Max " << arr[0] << ", Min " << arr[m-1] << ", Largest gap " << brr[m-2]<<'\n';
}
return 0;
}