Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define taskname "vdanger"
- typedef long long ll;
- void ioset() {
- cin.tie(0)->sync_with_stdio(0);
- if (fopen(taskname".in", "r")) {
- freopen(taskname".in", "r", stdin);
- // freopen(taskname".out", "w", stdout);
- }
- }
- template<typename T>
- bool chmin(T &a, T b) {
- return a > b ? a = b, 1 : 0;
- }
- void solve() {
- int n, m;
- cin >> n >> m;
- vector<int> a(m);
- for (auto &i : a) {
- cin >> i;
- i--;
- }
- vector<vector<int>> danger(n, vector<int>(n));
- for (auto &i : danger) {
- for (auto &j : i) cin >> j;
- }
- for (int k = 0; k < n; k++)
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++) {
- chmin(danger[i][j], danger[i][k] + danger[k][j]);
- }
- int ans = 0;
- for (int i = 1; i < m; i++) {
- ans += danger[a[i - 1]][a[i]];
- }
- cout << ans << '\n';
- }
- int main() {
- ioset();
- solve();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement