이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby,
C#, OCaml, VB, Perl, Swift, Prolog, Javascript, Pascal, COBOL, HTML, CSS, JS
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
#include <bits/stdc++.h>
#define int long long
using namespace std;
vector<int>g[22001];
int u[22001];
int a[22001];
int c[22001];
int ans[22001];
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
int q,w;
cin>>q>>w;
g[q].push_back(w);
g[w].push_back(q);
}
//cout<<"\n\n\n";
for(int iii=1;iii<=n;iii++){
int p=a[iii];
for(int i=1;i<=n;i++){
u[i]=0;
c[i]=i;
}
for(auto it : g[iii]){
u[it]=1;
}
u[iii]=1;
int k=1;
set<pair<int,int>>s;
for(auto it : g[iii]){
s.insert({a[it],it});
}
while(s.size()!=0){
pair<int,int>nn=*s.begin();
if(nn.first>p){
break;
}
else{
p+=nn.first;
c[nn.second]=iii;
s.erase(s.begin());
k++;
for(auto it: g[nn.second]){
if(c[it]!=iii){
s.insert({a[it],it});
}
}
}
}
if(k==n){
ans[iii]=1;
}
}
for(int i=1;i<=n;i++){
cout<<ans[i];
}
}
# | 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... |