Submission #90168

#TimeUsernameProblemLanguageResultExecution timeMemory
90168inomEvacuation plan (IZhO18_plan)C++14
23 / 100
633 ms20828 KiB
#include<bits/stdc++.h> #include<ext/pb_ds/tree_policy.hpp> #include<ext/pb_ds/assoc_container.hpp> #define fi first #define se second #define new new228 #define pb push_back #define rank rank228 #define sz(c) (int)(c).size() #define all(c) (c).begin(), (c).end() #define rall(c) (c).rbegin(), (c).rend() using namespace std; using namespace __gnu_pbds; #pragma GCC optimize("Ofast") #pragma GCC optimize("no-stack-protector") #pragma GCC optimize("unroll-loops") #pragma GCC target("sse,sse2,sse3,ssse3,popcnt,abm,mmx,tune=native") #pragma GCC optimize("fast-math") #pragma warning(disable : 4996) typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; // st.oreder_of_key(); const int N = 100100; const int INF = 1e15; const int MAXN = 4 * N; const int MOD = 998244353; int TN = 1; int n, m, k, q; int a[N], d[N]; set<pair<int, int>> st; vector<pair<int, int>> verr[N]; void solve() { scanf("%d %d", &n, &m); for (int i = 1; i <= m; i++) { int x, y, cost; scanf("%d %d %d", &x, &y, &cost); verr[x].pb({y, cost}); verr[y].pb({x, cost}); } for (int i = 1; i <= n; i++) { d[i] = MOD; } scanf("%d", &k); for (int i = 1; i <= k; i++) { int x; scanf("%d", &x); d[x] = 0; st.insert({d[x], x}); } while (!st.empty()) { int x = st.begin()->se; st.erase(st.begin()); for (auto i: verr[x]) { int to = i.fi, len = i.se; if (d[x] + len < d[to]) { st.erase({d[to], to}); d[to] = d[x] + len; st.insert({d[to], to}); } } } scanf("%d", &q); while (q--) { int x, y; scanf("%d %d", &x, &y); printf("%d\n", min(d[x], d[y])); } return; } signed main() { ios_base::sync_with_stdio(0); cin.tie(nullptr); cout.tie(nullptr); // in; out; // cin >> TN; while (TN--) { solve(); } return 0; }

Compilation message (stderr)

plan.cpp:22:0: warning: ignoring #pragma warning  [-Wunknown-pragmas]
 #pragma warning(disable : 4996)
 
plan.cpp:27:17: warning: overflow in implicit constant conversion [-Woverflow]
 const int INF = 1e15;
                 ^~~~
plan.cpp: In function 'void solve()':
plan.cpp:39:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &m);
  ~~~~~^~~~~~~~~~~~~~~~~
plan.cpp:42:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d", &x, &y, &cost);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
plan.cpp:48:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &k);
  ~~~~~^~~~~~~~~~
plan.cpp:50:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int x; scanf("%d", &x);
          ~~~~~^~~~~~~~~~
plan.cpp:65:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &q);
  ~~~~~^~~~~~~~~~
plan.cpp:67:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int x, y; scanf("%d %d", &x, &y);
             ~~~~~^~~~~~~~~~~~~~~~~
#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...