Submission #1178874

#TimeUsernameProblemLanguageResultExecution timeMemory
1178874JelalTkmCyberland (APIO23_cyberland)C++20
0 / 100
16 ms5192 KiB
#include <bits/stdc++.h>
#include "cyberland.h"
#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")

using namespace std;

// #define int long long int

// const int N = 2e5 + 10;
// const int md = 1e9 + 7;
// const int INF = 1e18;

double solve(int n, int m, int k, int h, vector<int> x, vector<int> y, vector<int> w, vector<int> a) {
  vector<vector<pair<int, int>>> g(n + 1, vector<pair<int, int>> ());
  for (int i = 0; i < m; i++) {
    g[x[i]].push_back({y[i], w[i]});
    g[y[i]].push_back({x[i], w[i]});
  }

  double ans = -1;
  for (auto i: g[0]) {
    if (i.first == h) {
      if (ans == -1)
        ans = i.second;
      else ans = min(ans, (double)i.second);
    } else {
      for (auto j: g[i.first]) {
        if (j.first == h) {
          double sm = i.second + j.second;
          if (a[j.first] == 0)
            sm -= i.second;
          else if (a[j.first] == 2) {sm -= i.second; sm += (double)(i.second / 2.0);}
          if (ans == -1)
            ans = sm;
          else ans = min(ans, sm);
        }
      }
    }
  }

  return ans;
}

// int32_t main(int32_t argc, char *argv[]) {
//   ios::sync_with_stdio(false);
//   cin.tie(nullptr);

//   int T = 1;
//   // cin >> T;
//   while (T--) {
//     cout << solve(4, 4, 30, 3, {0, 0, 1, 2}, {1, 2, 3, 3}, {5, 4, 2, 4}, {1, 0, 2, 1}) << '\n';
//   }

//   return 0;
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...