#include <bits/stdc++.h>
using namespace std;
#define ll long long
vector<int>v;
vector<vector<int>>g;
bool comp(int a,int b)
{
return v[a]<v[b];
}
void bfs(int s,vector<bool>&vi)
{
queue<pair<int,int>>q;
q.push({s,v[s]});
vi[s]=1;
while(!q.empty())
{
int a=q.front().first;
int c=q.front().second;
q.pop();
for(int u:g[a])
{
if(!vi[u] && c>=v[u])
{
c+=v[u];
vi[u]=1;
q.push({u,c});
}
}
}
}
int main()
{
ll m,n;
cin>>n>>m;
v.resize(n+1);
g.resize(n+1);
for(int i=1;i<=n;i++)
{
cin>>v[i];
}
for(int i=1;i<=m;i++)
{
ll d,f;
cin>>d>>f;
g[d].push_back(f);
g[f].push_back(d);
}
for(int i=1;i<=n;i++)
{
sort(g[i].begin(),g[i].end(),comp);
}
for(int i=1;i<=n;i++)
{
vector<bool>vi(n+1);
bfs(i,vi);
bool y=0;
for(int j=1;j<=n;j++)
{
if(!vi[j])
{
y=1;
break;
}
}
if(y)
cout<<0;
else
cout<<1;
}
cout<<endl;
}
| # | 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... |