Advertisement
TwITe

Untitled

Jan 7th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.56 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. using ll = long long;
  4. using ull = unsigned long long;
  5. const int MAXN = 1e5 + 1;
  6.  
  7. vector<set<int>> v;
  8. ll cost[MAXN][MAXN];
  9.  
  10. void solve() {
  11.     ios::sync_with_stdio(false);
  12.     int n, m;
  13.     cin >> n >> m;
  14.     v.resize(n);
  15.     for (int i = 0; i < m; i++) {
  16.         int a, b;
  17.         ll c;
  18.         cin >> a >> b >> c;
  19.         a--, b--;
  20.         v[a].insert(b);
  21.         v[b].insert(a);
  22.         cost[a][b] = c;
  23.     }
  24.     int q;
  25.     cin >> q;
  26.     for (int j = 0; j < q; j++) {
  27.         int key, a, b;
  28.         ll c;
  29.         cin >> key;
  30.         if (key == 1) {
  31.             cin >> a >> b >> c;
  32.             v[a].insert(b);
  33.             v[b].insert(a);
  34.             cost[a][b] = c;
  35.         }
  36.         if (key == 2) {
  37.             cin >> a >> b;
  38.             v[a].erase(b);
  39.             v[b].erase(a);
  40.             cost[a][b] = -1;
  41.         }
  42.         if (key == 3) {
  43.             cin >> a >> b;
  44.             vector <ll> w;
  45.  
  46.             for (auto i : v[a]) {
  47.                 if (i == b) {
  48.                     w.emplace_back(cost[a][b]);
  49.                 }
  50.                 for (auto i1 : v[i]) {
  51.                     if (i1 == b) {
  52.                         ll sum = cost[a][i] + cost[i1][b];
  53.                         w.emplace_back(sum);
  54.                     }
  55.                 }
  56.             }
  57.  
  58.             ll ans = -1;
  59.             if (!w.empty()) {
  60.                 ans = *min_element(w.begin(), w.end());
  61.             }
  62.  
  63.             cout << ans << endl;
  64.         }
  65.     }
  66. }
  67.  
  68. int main() {
  69.     solve();
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement