#include <stdio.h>
int n, c[105][105], X[105];
int visited[105];
int min = 1e9;
int dis = 0;
void Try(int i){
for(int j = 1; j<= n; j++){
if(!visited[j]){
X[i] = j;
visited[j] = 1;
dis += c[X[i-1]][X[i]];
if(i == n){
if(dis + c[X[i]][X[1]] < min){ // chỗ này thay vì thay dis += c[X[i]][X[1]] thì thay thẳng vào hàm if
min = dis+ c[X[i]][X[1]];
}
}
else{
Try(i+1);
}
dis -= c[X[i-1]][X[i]];
visited[j] = 0;
}
}
}
int main(){
for(int i = 1; i<= n; i++){
for(int j = 1; j<= n; j++){
}
}
for(int j = 1; j<= n; j++){
visited[j] = 0;
}
X[1] = 1;
visited[1] = 1;
Try(2);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCAgbiwgY1sxMDVdWzEwNV0sIFhbMTA1XTsKaW50IHZpc2l0ZWRbMTA1XTsKaW50IG1pbiA9IDFlOTsKaW50IGRpcyA9IDA7CnZvaWQgVHJ5KGludCBpKXsKICAgIGZvcihpbnQgaiA9IDE7IGo8PSBuOyBqKyspewogICAgICAgIGlmKCF2aXNpdGVkW2pdKXsKICAgICAgICAgICAgWFtpXSA9IGo7CiAgICAgICAgICAgIHZpc2l0ZWRbal0gPSAxOwogICAgICAgICAgICBkaXMgKz0gY1tYW2ktMV1dW1hbaV1dOwogICAgICAgICAgICBpZihpID09IG4pewogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZihkaXMgKyBjW1hbaV1dW1hbMV1dIDwgbWluKXsgICAgICAvLyBjaOG7lyBuw6B5IHRoYXkgdsOsIHRoYXkgZGlzICs9IGNbWFtpXV1bWFsxXV0gdGjDrCB0aGF5IHRo4bqzbmcgdsOgbyBow6BtIGlmCiAgICAgICAgICAgICAgICAgICAgbWluID0gZGlzKyBjW1hbaV1dW1hbMV1dOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICBUcnkoaSsxKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkaXMgLT0gY1tYW2ktMV1dW1hbaV1dOwogICAgICAgICAgICB2aXNpdGVkW2pdID0gMDsKICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKCl7CiAgICBzY2FuZigiJWQiLCAmbik7CiAgICBmb3IoaW50IGkgPSAxOyBpPD0gbjsgaSsrKXsKICAgICAgICBmb3IoaW50IGogPSAxOyBqPD0gbjsgaisrKXsKICAgICAgICAgICAgc2NhbmYoIiVkIiwgJmNbaV1bal0pOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpbnQgaiA9IDE7IGo8PSBuOyBqKyspewogICAgICAgIHZpc2l0ZWRbal0gPSAwOwogICAgfQogICAgIFhbMV0gPSAxOwogICAgIHZpc2l0ZWRbMV0gPSAxOwogICAgIFRyeSgyKTsKICAgICBwcmludGYoIiVkIiwgbWluKTsKfQ==