Submission #1098919

#TimeUsernameProblemLanguageResultExecution timeMemory
1098919crafticatStranded Far From Home (BOI22_island)C++17
10 / 100
1093 ms16344 KiB
#include <bits/stdc++.h> #include <utility> using namespace std; #define F0R(i, n) for (ll i= 0; i < n;i++) template<typename T> using V = vector<T>; using ll = long long; using vi = V<ll>; using vvi = V<vi>; #define pb push_back using pi = pair<ll, ll>; #define all(x) begin(x), end(x) #define f first #define s second vvi g; bool pos(ll x, vi sum) { priority_queue<pi,V<pi>, greater<>> nodes; nodes.push({sum[x], x}); ll gs = -1; V<bool> vis(sum.size()); ll 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() { ll n, m; cin >> n >> m; vi init(n + 1); F0R(i, n) cin >> init[i + 1]; g.resize(n + 1); F0R(i, m) { ll 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(ll, vi)':
island.cpp:41:20: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int, std::allocator<long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |     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...