#include "bits/stdc++.h"
#define FOR(i,a,b)for(int i=(a);i<(b);i++)
#define F0R(i,a)FOR(i,0,a)
#define ROF(i,a,b)for(int i=(b)-1;i>=(a);i--)
#define R0F(i,a)ROF(i,0,a)
#define REP(a)F0R(_,a)
using namespace std;
const int mxn=2e5+20;
vector<int>aj[mxn];
int s[mxn];
int main(){
cin.tie(nullptr)->sync_with_stdio(false);
int n,m;cin>>n>>m;
F0R(i,n)cin>>s[i];
REP(m){
int a,b;cin>>a>>b;
a--,b--;
aj[a].push_back(b);
aj[b].push_back(a);
}
F0R(i,n){
priority_queue<array<int,2>>pq;
vector<bool>vis(n);
vis[i]=true;
pq.push({-s[i],i});
long long sm=0;
while(not pq.empty()){
auto tp=pq.top();
pq.pop();
sm-=tp[0];
for(int v:aj[tp[1]])if(not vis[v]){
if(s[v]<=sm){
vis[v]=true;
pq.push({-s[v],v});
}
}
}
int loc=0;
F0R(j,n)if(vis[j])loc++;
cout<<(loc==n);
}
cout<<'\n';
}
| # | 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... |