#include <bits/stdc++.h>
using namespace std;
int main() {
int N, M;
cin >> N >> M;
vector<int> vals(N);
for(int i = 0; i < N; i++)
cin >> vals[i];
vector<vector<int>> roads(N, vector<int>());
for(int i = 0; i < M; i++) {
int a, b;
cin >> a >> b;
a--;
b--;
roads[a].push_back(b);
roads[b].push_back(a);
}
for(int i = 0; i < N; i++) {
vector<bool> visited(N, false);
visited[i] = true;
long long current = vals[i];
priority_queue<pair<int, int>> q;
for(int a : roads[i]) {
q.push(make_pair(-vals[a], a));
visited[a] = true;
}
bool bb = true;
while(!q.empty()) {
int cost, vertex;
tie(cost, vertex) = q.top();
cost = -cost;
q.pop();
if(cost > current) {
bb = false;
break;
}
current += cost;
for(int a : roads[vertex]) {
if(visited[a]) continue;
q.push(make_pair(-vals[a], a));
visited[a] = true;
}
}
cout << bb;
}
return 0;
}
# | 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... |