#include#include int cal[1000]; int chk(const void * a,const void * b) { if (*(int*)a > *(int*)b) { return -1; } else if (*(int*)a == *(int*)b) { return 0; } else { return 1; } } int main() { int cases, n, t, w, i, j, max; scanf("%d", &cases); while(cases--) { max = 0; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &cal[i]); if (cal[i] > max) { max = cal[i]; } } qsort(cal, n, sizeof(int), chk); for (i = n - 1; i >= 0; i--) { if (cal[i] * (i + 1) > max) { max = cal[i] * (i + 1); } } printf("%d\n", max); } return 0; }
우쒸 몸 열라리 아프네요
숨을 못쉬어 -_-
그냥 간단합니다.
제일 약한 로프만큼만 걸 수 있으니까
큰 숫자부터 소트 때려버리고
가장 작은 숫자부터 버틸 수 있는 무게 * 밧줄 갯수
한 값이 가장 크면 그게 답입니다.
간단히 말해서 10 1 15면
15 10 1로 소트해놓고
1부터 역으로 1 * 3은 3이니 최대 3,
10 * 2는 20이니 최대 20
15 * 1은 15니 최대 15
이중 답은 20
요렇게 풀어나가면 간단.
'Solutions > Dlbo's Solution' 카테고리의 다른 글
UVa 628. Passwords. AC g~e~t~ (0) | 2011.04.06 |
---|---|
PKU 3132. Sum of Different primes. AC get -_- (0) | 2011.03.19 |
PKU 2181. Jumping Cows -_- AC get (2) | 2011.03.06 |
PKU 3032. Card Trick. AC get -_- (2) | 2010.12.24 |
PKU 3176. Cow bowling. AC get -_- (0) | 2010.11.02 |