728x90
SMALL
아이디어
n의 입력을 받고 n*2 만큼의 팀원을 둘씩 짝지으면 된다.
그렇다면 오름차순으로 정렬하고 제일 작은 수 + 제일 큰 수
식으로 팀을 맺으면 최소의 평균값이 나올 것이다.
https://www.acmicpc.net/problem/20044
20044번: Project Teams
입력은 표준입력을 사용한다. 입력의 첫 번째 행에는 팀 수를 나타내는 양의 정수 n(1 ≤ n ≤ 5,000)이 주어진다. 그 다음 행에 학생 si 의 코딩 역량 w(si)를 나타내는 2n개의 양의 정수가 공백으로
www.acmicpc.net
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
using ll = long long;
const int INF = 1e8;
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n,a;
cin >> n;
n *= 2;
vector<int> v;
for (int i = 0; i < n; i++) {
cin >> a;
v.push_back(a);
}
sort(v.begin(), v.end());
int ans = INF;
for (int i = 0; i < n; i++) {
ans = min(ans, v[i] + v[n - i - 1]); // v1 + vn ...
}
cout << ans;
return 0;
}
728x90
LIST
'PS > BOJ' 카테고리의 다른 글
백준 17398 (C++) 통신망 분할 (3) | 2021.10.04 |
---|---|
백준 14938 (C++) 서강그라운드 (0) | 2021.09.30 |
백준 1931 (C++) 회의실 배정 (0) | 2021.09.30 |
백준 11720 (C++) 숫자의 합 (0) | 2021.09.29 |
백준 1158 (C++) 요세푸스 문제 (0) | 2021.09.29 |