본문 바로가기
개발자/알고리즘

[BOJ] 14889번 스타트와 링크

by D , 2019. 10. 13.
반응형

#include 
#include 
#include 
#include 

using namespace std;

int board[20][20];

int main()
{

    memset(board,0,sizeof(board));

    int num;
    cin>>num;

    for(int i=0;i<num;i++){
        for(int j=0;j<num;j++){
            cin>>board[i][j];
        }
    }
/*
    for(int i=0;i<num;i++){
        for(int j=0;j<num;j++){
            cout<<board[i][j]<<" ";
        }
        cout<<endl;
    }
*/
    vector ind;
    for(int i=0;i<num;i++){
        if(i<num/2){
            ind.push_back(1);
        }else{
            ind.push_back(0);
        }
    }
/*
    for(int i=0;i<ind.size();i++){
        cout<<ind[i]<<" ";
    }
*/

    int minNum = 987654321;

    do{
        int teamA = 0;
        int teamB = 0;
        int mins =0;
        for(int i=0;i<num;i++){
            for(int j=0;j<num;j++){
                if(ind[i] == ind[j]){
                    if(ind[i] == 1){
                        teamA += board[i][j];
                    }else{
                        teamB += board[i][j];
                    }
                }
            }
        }
        if(teamA > teamB){
            mins = teamA - teamB;
        }else{
            mins = teamB - teamA;
        }
        minNum = min(minNum,mins);

    }while(prev_permutation(ind.begin(),ind.end()));


    cout<<minNum;

    return 0;
}

https://www.acmicpc.net/problem/14889

 

14889번: 스타트와 링크

예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다.

www.acmicpc.net

 

반응형

'개발자 > 알고리즘' 카테고리의 다른 글

[BOJ] 1987 알파벳  (0) 2019.10.16
[BOJ] 2580번 스도쿠  (0) 2019.10.15
[BOJ] 1339번 단어수학  (0) 2019.10.13
[BOJ] 1748번 수 이어 쓰기1  (0) 2019.10.13
[BOJ] 1261번 알고스팟 -deque  (0) 2019.10.12