#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
typedef long long ll;
void solve() {
int n, m; cin >> n >> m;
vector<int> a(n);
for (int &x : a) cin >> x;
vector<vector<int>> g(n);
while (m--) {
int u, v; cin >> u >> v;
g[--u].push_back(--v), g[v].push_back(u);
}
for (int i = 0; i < n; i++) {
sort(g[i].begin(), g[i].end(), [&](int x, int y) {
return a[x] < a[y];
});
}
vector<int> vis(n);
queue<int> q;
for (int i = 0; i < n; i++) {
vis = vector<int> (n);
vis[i] = 1;
q.push(i);
int tot = a[i];
while (q.size()) {
int v = q.front(); q.pop();
for (int u : g[v]) {
if (!vis[u] and a[u] <= tot) {
tot += a[u];
vis[u] = 1;
q.push(u);
}
}
}
int flag = 1;
for (int x : vis) flag &= x;
cout << flag;
}
}
int main() {
//freopen("filename.in", "r", stdin), freopen("filename.out", "w", stdout);
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1; //cin >> t;
while (t--) solve();
}
# | 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... |