제출 #1320098

#제출 시각아이디문제언어결과실행 시간메모리
1320098888313666Stranded Far From Home (BOI22_island)C++20
10 / 100
1095 ms14736 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define _ <<' '<< #define print(x) cout<<#x<<": "<<(x)<<'\n' int n,m; vector<vector<int>> adj; vector<ll> s; bool bfs(const int st) { priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<>> q; vector<int> vis(n, 0); ll cur=s[st]; for (const auto v:adj[st]) q.push({s[v], v}); vis[st]=1; while (!q.empty()) { const auto [d, u]=q.top(); q.pop(); if (vis[u]) continue; vis[u]=1; if (d>cur) return false; cur+=d; for (const auto v:adj[u]) if (!vis[v]) q.push({s[v], v}); } return true; } int main(){ cin.tie(0)->sync_with_stdio(0); cout.tie(0); cin>>n>>m; adj.resize(n); s.resize(n); for (auto &e:s) cin>>e; for (int i=0; i<m; i++) { int a,b; cin>>a>>b; adj[--a].push_back(--b); adj[b].push_back(a); } for (int i=0; i<n; i++) cout<<bfs(i); cout<<'\n'; }
#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...