제출 #1305527

#제출 시각아이디문제언어결과실행 시간메모리
1305527fatime_aslan_156Stranded Far From Home (BOI22_island)C++20
0 / 100
343 ms12396 KiB
#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];
            }
        }
        for(int u:g[a])
        {
            if(!vi[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 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...