Submission #3821430
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int n, m, r;
int memo[205][205] = {0};
vector<int> ls;
int solve();
int main() {
cin >> n >> m >> r;
for(int i = 0; i < r; ++i) {
int x;
cin >> x;
--x;
ls.push_back(x);
}
for(int i = 0; i < n; ++i)
for(int j = 0; j < n; ++j)
if(i != j) memo[i][j] = 200000000;
for(int i = 0; i < m; ++i) {
int a, b, c;
cin >> a >> b >> c;
--a, --b;
memo[a][b] = memo[b][a] = c;
}
for(int k = 0; k < n; ++k)
for(int i = 0; i < n; ++i)
for(int j = 0; j < n; ++j)
memo[i][j] =
min(memo[i][j], memo[i][k] + memo[k][j]);
cout << solve() << endl;
return 0;
}
int solve() {
int ans = 2000000000;
sort(ls.begin(), ls.end());
do {
int now = 0;
for(int i = 0; i < r - 1; ++i)
now += memo[ls[i]][ls[i + 1]];
ans = min(now, ans);
} while(next_permutation(ls.begin(), ls.end()));
return ans;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - joisino's travel |
| User | m_tsubasa |
| Language | C++14 (GCC 5.4.1) |
| Score | 400 |
| Code Size | 976 Byte |
| Status | AC |
| Exec Time | 29 ms |
| Memory | 384 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01.txt | AC | 28 ms | 384 KiB |
| 02.txt | AC | 11 ms | 384 KiB |
| 03.txt | AC | 11 ms | 384 KiB |
| 04.txt | AC | 13 ms | 384 KiB |
| 05.txt | AC | 15 ms | 384 KiB |
| 06.txt | AC | 28 ms | 384 KiB |
| 07.txt | AC | 29 ms | 384 KiB |
| 08.txt | AC | 10 ms | 384 KiB |
| sample_01.txt | AC | 1 ms | 256 KiB |
| sample_02.txt | AC | 1 ms | 256 KiB |
| sample_03.txt | AC | 1 ms | 256 KiB |