https://www.acmicpc.net/problem/10971
//나머지
#include<stdio.h>
#include<vector>
#include<stack>
#include<string.h>
#include<algorithm>
using namespace std;
int main(void)
{
int n;
int w[10][10] = {0, };
int a[10];
int min=2100000000;
for(int i=0; i<10; i++)
{
a[i] = i;
}
int sum=0;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
scanf("%d", &w[i][j]);
}
}
do{
sum=0;
int flag = 1;
for(int i=0; i<n; i++)
{
int x;
if(i+1 < n)
{
x = w[a[i]][a[i+1]];
sum+=x;
}
else
{
x = w[a[i]][a[0]];
sum+=x;
}
if(x==0)
{
flag++;
}
}
if(flag == 1 && min>sum)
{
min = sum;
}
}while(next_permutation(a, a+n)!=0);
printf("%d", min);
return 0;
}
'정보올림피아드-KOI > BOJ' 카테고리의 다른 글
단어 뒤집기 2 (0) | 2021.12.31 |
---|---|
백준 : 가운데를 말해요 1655번 (0) | 2020.05.10 |
백준 - 프린터 큐 : 1966번 (0) | 2020.04.26 |
백준 - 로마 숫자 만들기 : 16922번 (0) | 2020.04.26 |
백준 - 두 로봇 : 15971 (0) | 2020.03.31 |