문제출처 : https://www.acmicpc.net/problem/1041
code
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
long long N, arr[6], max = 0;
long long result = 0;
cin >> N;
for (int i = 0; i < 6; i++)
{
cin >> arr[i];
result += arr[i];
if (arr[i] > max)
max = arr[i];
}
if (N == 1)
{
result -= max;
}
else
{
result = 0;
arr[0] = min(arr[0], arr[5]);
arr[1] = min(arr[1], arr[4]);
arr[2] = min(arr[2], arr[3]);
sort(arr, arr + 3);
result += 4 * (arr[0]+arr[1]+arr[2]);
result += 4 * (N - 1) * (arr[0]+arr[1]) + 4 * (N - 2) * (arr[0]+arr[1]);
result += 4 * (N - 2) * (N - 1) * arr[0] + arr[0] * (N - 2) * (N - 2);
}
cout << result;
return 0;
}
조금 어려운 문제였던것 같다. 사실 오늘말고 한달전에도 이 문제를 도전했었는데, 그땐 진짜 답도없어보였는데, 이번에 풀어보니 어렵긴했지만 풀 수있었다. 처음에는 배열을 안쓰고 ABCDEF로 입력받아서 했는데, 그렇게하다보니 코드가 길어져서 배열을 쓰게 되었다.
참고블로그 : https://ongveloper.tistory.com/148
오늘하루도 열심히 공부하자!