#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i = a; i <= (int)b; i++)
#define FORD(i, a, b) for (int i = a; i >= (int)b; i--)
#define ll long long
const int maxn = 2e5 + 5;
int n, m;
vector <int> g[maxn];
int a[maxn];
namespace sub1
{
void solve ()
{
FOR(i, 1, n)
{
ll cur = a[i];
vector <int> vis (n + 2, 0);
priority_queue <pair <int, int>, vector <pair <int, int>>, greater <pair <int, int>>> pq;
for (int &v : g[i]) pq.push(make_pair(a[v], v));
vis[i] = 1;
int cnt = 1;
while (1)
{
bool ok = 0;
while (!pq.empty() && pq.top().first <= cur)
{
int u = pq.top().second;
pq.pop();
if (!vis[u])
{
cur+= a[u];
vis[u] = 1;
cnt++;
ok = 1;
for (int &v : g[u]) if (!vis[v])
{
pq.push(make_pair(a[v], v));
}
}
}
if (!ok)
{
break;
} else if (cnt == n)
{
break;
}
}
cout << (cnt == n);
}
}
}
signed main ()
{
ios_base::sync_with_stdio(0); cin.tie(0);
#define kieuoanh "kieuoanh"
if (fopen(kieuoanh".inp", "r"))
{
freopen(kieuoanh".inp", "r", stdin);
freopen(kieuoanh".out", "w", stdout);
}
cin >> n >> m;
FOR(i, 1, n) cin >> a[i];
FOR(i, 1, m)
{
int u, v; cin >> u >> v;
g[u].push_back(v); g[v].push_back(u);
}
if (max(n, m) <= 2000) return sub1::solve(), 0;
return 0;
}
Compilation message (stderr)
island.cpp: In function 'int main()':
island.cpp:63:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
63 | freopen(kieuoanh".inp", "r", stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
island.cpp:64:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
64 | freopen(kieuoanh".out", "w", stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 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... |