#include <stdio.h>
#include <iostream>
#include <set>
#include <map>
#include <queue>
#include <vector>
#include <string>
#include <math.h>
#include <algorithm>
using namespace std;
 
int N; 
int dice[7];
long long Min1 = 9999;
long long Min2 = 9999;
long long Min3 = 9999;
int check2[7];
int check3[7];
 
void Min_1()
{
    for(int i = 1; i <= 6; i++)
    {
        if(dice[i] < Min1)
        {
            Min1 = dice[i];
        }
    }
}
 
void Min_2(long long sum, int idx, int cnt)
{
    if(cnt == 2
    {
        if(sum < Min2)
        {
            Min2 = sum;
        }
        
        return;
    }
    
    for(int i = idx; i <= 6; i++)
    {
        if(check2[abs(7-i)] == 1)
        {
            continue;
        }
        
        check2[i] = 1;
        Min_2(sum+dice[i], i+1, cnt+1);
        check2[i] = 0;
    }
 
void Min_3(int sum, int idx, int cnt)
{
    if(cnt == 3
    {
        if(sum < Min3)
        {
            Min3 = sum;
        }
        
        return;
    }
    
    for(int i = idx; i <= 6; i++)
    {
        if(check3[abs(7-i)] == 1)
        {
            continue;
        }
        
        check3[i] = 1;
        Min_3(sum+dice[i], i+1, cnt+1);
        check3[i] = 0;
    }
 
int main(void)
{
//    freopen("B1041_input.txt", "r", stdin);
    
    cin >> N;
    
    for(int i = 1; i <= 6; i++)
    {
        cin >> dice[i]; // (1,6) (2,5) (3,4) 평행 
    }
    
    if(N == 1)
    {
        sort(dice+1, dice+7);
        
        long long sum = 0;
        for(int i = 1; i <= 5; i++)
        {
            sum += dice[i];
        }
        
        cout << sum;
    }
    else
    {
        Min_1();
        Min_2(010);    
        Min_3(010);
 
        long long Min1_Sum = Min1 * (N-2* (N-1* 4 + Min1 * (N-2* (N-2);
        long long Min2_Sum = Min2 * (N-1* 4 + Min2 * (N-2* 4;
        long long Min3_Sum = Min3 * 4;
    
        cout << Min1_Sum + Min2_Sum + Min3_Sum;   
    }
    
    return 0;
}
cs

+ Recent posts