PS/BOJ
백준 20044 (C++) Project Teams
akinakamori
2021. 9. 30. 13:00
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