#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |