문제
- 배를 타고 강을 건너야 한다.
- 배에는 단 두명의 사람만이 탈수 있다.
- n명의 사람들이 주어지고, 각 사람들은 노를 젓는 속도가 다르다.
- 배의 속도는 노를 늦게 젓는 사람의 속도에 맞춰진다.
- 모든 사람이 강을 건널때 시간이 얼마나 걸리는지 계산하라.
#include <bits/stdc++.h>
using namespace std;
int n, res = 0;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
freopen("input.txt", "rt", stdin);
cin >> n;
vector<int> t(n + 1);
for(int i=1; i<=n; i++) {
cin >> t[i];
}
sort(t.begin(), t.end());
int res=0, i;
for (i = n; i >= 4; i -= 2) {
res += min(t[i] + t[1] + t[i - 1] + t[1], t[2] + t[2] + t[i] + t[1]);
}
if (i == 3) res += t[1] + t[2] + t[3];
if (i == 2) res += t[2];
if (i == 1) res += t[1];
cout << res;
return 0;
}
- t[i] + t[1] + t[i-1] + t[1]
- t[2] + t[2] + t[i] + t[1]
- 위의 두 경우를 비교하여 작은 것을 결과값에 합한다.
ex)
4
1 3 7 10