Submission #1305532

#TimeUsernameProblemLanguageResultExecution timeMemory
1305532al95ireyizStranded Far From Home (BOI22_island)C++20
10 / 100
147 ms620 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define len(x) (ll)x.size()
const ll inf = 1e9, infl = 1e18;
const ll MOD = 1e9 + 7;
const ll maxn = 2e3 + 5;

ll n, m, k = 0;

ll a[maxn];
vll g[maxn];
ll bfs(ll x){
  priority_queue<pair<ll, ll>, vector<pair<ll, ll>>, greater<pair<ll, ll>>>q;
  vll vis(n + 1);
  vis[x] = 1;
  q.push({a[x], x});
  ll cm = 0, sz = 0, st = 1;
  while(!q.empty()){
    auto [tmpp, u] = q.top();
    if(cm < a[u] and !st) break;
    cm += a[u], sz ++, st = 0;
    q.pop();
    for(auto v : g[u]){
      if(vis[v]) continue;
      vis[v] = 1;
      q.push({a[v], v});
    }
  }
  // cerr << x << ' ' << sz << '\n';
  return sz;
}
void _() {
  cin >> n >> m;
  for(ll i = 1; i <= n; i ++){
    cin >> a[i];
  }
  for(ll i = 1, x, y; i <= m; i ++){
    cin >> x >> y;
    g[x].push_back(y);
    g[y].push_back(x);
  }
  for(ll i = 1; i <= n; i ++){
    sort(g[i].begin(), g[i].end(), [&](ll &x, ll &y){ return a[x] < a[y]; });
  }
  for(ll i = 1; i <= n; i ++){
    if(bfs(i) == n) cout << 1;
    else cout << 0;
  }
}
signed main() {
  cin.tie(0)->sync_with_stdio(0);
  ll t = 1;
  // cin >> t;
  while(t --) _();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...