728x90
https://www.acmicpc.net/problem/2217
2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
여러 로프를 병렬로 연결하려면 작은 애를 기준으로 연결하는 로프 개수를 곱해주면 각 로프에 걸리는 중량을 구할 수 있다.
모든 로프를 사용할 필요가 없으므로
N개,..., 2개, 1개 순으로 중량을 구하고 최댓값을 구하면 된다.
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n, lope[100001], ans = 0;
cin >> n;
for(int i=0; i<n; i++) cin >> lope[i];
sort(lope, lope+n);
int num = n;
for(int i=0; i<n; i++){
ans = max(ans, num * lope[i]);
num--;
}
cout << ans << '\n';
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/c++] 20115번: 에너지 드링크 (0) | 2022.07.12 |
---|---|
[백준/c++] 1758번: 알바생 강호 (0) | 2022.07.12 |
[백준/c++] 14916번: 거스름돈 (0) | 2022.07.12 |
[백준/c++] 6550번: 부분 문자열 (0) | 2022.07.12 |
[백준/c++] 3135번: 라디오 (0) | 2022.07.12 |