# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1280142 | Bui_Quoc_Cuong | Stranded Far From Home (BOI22_island) | C++20 | 1095 ms | 12128 KiB |
#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)
{
int res = 1;
ll cur = a[i];
vector <int> vis(n + 2, 0);
vis[i] = 1;
while (1)
{
int cnt = 0;
FOR(j, 1, n) if (vis[j]) cnt++;
if (cnt == n) break;
bool can_go = 0;
FOR(j, 1, n) if (vis[j])
{
for (int &v : g[j]) if (!vis[v])
{
if (cur >= a[v])
{
cur+= a[v];
vis[v] = 1;
can_go = 1;
}
}
}
if (can_go == 0)
{
res = 0;
break;
}
}
cout << res;
}
}
}
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)
# | 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... |