Submission #4033280


Source Code Expand

#include <iostream>
#include <string>
#include <utility>
#include <algorithm>
#include <map>
#include <set>
#include <vector>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <stack>

using namespace std;

#define REP(i, n) for(int i = 0;i < n;i++)
#define REPR(i, n) for(int i = n;i >= 0;i--)
#define FOR(i, m, n) for(int i = m;i < n;i++)
#define FORR(i, m, n) for(int i = m;i >= n;i--)
#define REPO(i, n) for(int i = 1;i <= n;i++)
#define ll long long
#define INF 1999999999
#define MINF -1999999999
#define INF64 5999999999999999999
#define ALL(n) n.begin(),n.end()
#define ABS(a,b) max(a,b) - min(a,b)

vector<int> t;
ll s[300][300];
int main() {
	ll n, m, r,ans = INF64;
	cin >> n >> m >> r;
	REPO(i, n) {
		REPO(j, n) {
			if (i != j)s[i][j] = INF64;
		}
	}
	REP(i, r) {
		int a;
		cin >> a;
		t.push_back(a);
	}
	REP(i, m) {
		int a, b, c;
		cin >> a >> b >> c;
		s[a][b] = c;
		s[b][a] = c;
	}
	sort(ALL(t));
	REPO(k, n) REPO(i, n) REPO(j, n) s[i][j] = min(s[i][j], s[i][k] + s[k][j]);
	do {
		ll a = 0;
		REP(i, r - 1) a += s[t[i]][t[i + 1]];
		ans = min(a, ans);
		REP(i, r) cout << t[i] << " ";
		cout << endl;
	} while (next_permutation(ALL(t)));
	cout << ans << endl;
}

Submission Info

Submission Time
Task D - joisino's travel
User kenken714
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1254 Byte
Status WA
Exec Time 118 ms
Memory 1920 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 400
Status
WA × 3
WA × 11
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 WA 117 ms 1792 KB
02.txt WA 103 ms 1792 KB
03.txt WA 102 ms 1920 KB
04.txt WA 103 ms 1920 KB
05.txt WA 106 ms 1792 KB
06.txt WA 117 ms 1792 KB
07.txt WA 118 ms 1664 KB
08.txt WA 99 ms 1408 KB
sample_01.txt WA 1 ms 256 KB
sample_02.txt WA 1 ms 256 KB
sample_03.txt WA 1 ms 256 KB