풀이
한 쪽 배열은 오름차순, 다른 한 쪽은 내림차순하면 된다.
코드
#include <cstdio>
#include <algorithm>
#include <functional>
using namespace std;
int main()
{
int n;
char A[51], B[51];
scanf("%d", &n);
for (int i = 0; i < n; ++i)
scanf("%d", &A[i]);
for (int i = 0; i < n; ++i)
scanf("%d", &B[i]);
sort(A, A + n);
sort(B, B + n, greater<char>());
unsigned int sum = 0;
for (int i = 0; i < n; ++i)
{
sum += (A[i] * B[i]);
}
printf("%d\n", sum);
return 0;
}
'온라인저지' 카테고리의 다른 글
[BOJ] 2133번: 타일 채우기 (0) | 2018.05.31 |
---|---|
[BOJ] 2355번: 시그마 (0) | 2018.05.26 |
[BOJ] 2941번: 크로아티아 알파벳 (0) | 2018.05.26 |
[BOJ] 11819번: The Shortest does not Mean the Simplest (0) | 2018.05.21 |
[BOJ] 2482번: 색상환 (0) | 2018.05.21 |
[BOJ] 13302번: 리조트 (0) | 2018.05.20 |
댓글