학생들을 두개의 class로 나누고, 두 class의 median 값의 차를 최대한 줄여야 한다. 배열 a가 정렬이 되어있다고 하면, 두 class의 중앙값은 a[n-1]과 a[n]이 되어야 그 차이가 최소가 된다.
만약 한 class의 중앙값이 a[n-2]으로 설정이 되었다면, 다른 클래스의 중앙 값은 아무리 작아도 a[n] 이 된다.
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int t, n;
cin >> t ;
while (t-- ){
cin >> n;
int a[200010];
for (int i = 0; i < 2 * n; i ++){
cin >> a[i];
}
sort(a, a+ 2*n);
cout << abs (a[n-1] - a[n]) << endl;
}
return 0;
}
반응형
'codeforce > #618 (Div.2)' 카테고리의 다른 글
Codeforces #618 (Div. 2) A. Non-zero (0) | 2020.02.16 |
---|