Submission #1098915

#TimeUsernameProblemLanguageResultExecution timeMemory
1098915crafticatStranded Far From Home (BOI22_island)C++17
0 / 100
1093 ms12976 KiB
#include <bits/stdc++.h> #include <utility> using namespace std; #define F0R(i, n) for (int i= 0; i < n;i++) template<typename T> using V = vector<T>; using vi = V<int>; using vvi = V<vi>; #define pb push_back using pi = pair<int, int>; #define all(x) begin(x), end(x) #define f first #define s second vvi g; bool pos(int x, vi sum) { priority_queue<pi,V<pi>, greater<>> nodes; nodes.push({sum[x], x}); int gs = -1; V<bool> vis(sum.size()); int visited = 0; while (!nodes.empty()) { auto [nodeS, a] = nodes.top(); nodes.pop(); if (vis[a]) continue; vis[a] = true; if (nodeS > gs && gs != -1) return false; if (gs == -1) gs = 0; gs += nodeS; visited++; for (auto child : g[a]) { if (vis[child]) continue; nodes.emplace(sum[child], child); } } return visited == sum.size() - 1; } int main() { int n, m; cin >> n >> m; vi init(n + 1); F0R(i, n) cin >> init[i + 1]; g.resize(n + 1); F0R(i, m) { int a, b; cin >> a >> b; g[a].pb(b); g[b].pb(a); } F0R(i, n) cout << pos(i + 1, init); }

Compilation message (stderr)

island.cpp: In function 'bool pos(int, vi)':
island.cpp:40:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |     return visited == sum.size() - 1;
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~
#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...