| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1104431 | vivkostov | Stranded Far From Home (BOI22_island) | C++14 | 186 ms | 42488 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
void speed()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
struct cell
{
long long int st,in;
};
bool cmp(cell a1,cell a2)
{
return a1.st<a2.st;
}
long long int n,m,l,r,lead[200005],sz[200005],lamp[200005],st[200005],otg[200005];
vector<int>valid[200005],v[200005];
cell a[200005];
void prec()
{
for(int i=1;i<=n;i++)
{
lead[i]=i;
sz[i]=1;
st[i]=a[i].st;
valid[i].push_back(i);
}
}
int get_lead(int beg)
{
if(lead[beg]==beg)return beg;
return get_lead(lead[beg]);
}
void ad(int a,int b)
{
a=get_lead(a);
b=get_lead(b);
if(a==b)return;
if(sz[a]<sz[b])swap(a,b);
lead[b]=lead[a];
sz[a]+=sz[b];
st[a]+=st[b];
for(int i=0;i<valid[b].size();i++)
{
valid[a].push_back(valid[b][i]);
}
}
void rem(int in,long long int tresh)
{
in=get_lead(in);
if(st[in]<tresh)
{
valid[in].clear();
}
}
void add(int a,long long int tresh)
{
lamp[a]=1;
for(int i=0;i<v[a].size();i++)
{
if(lamp[v[a][i]])
{
rem(v[a][i],tresh);
ad(a,v[a][i]);
}
}
}
void read()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i].st;
a[i].in=i;
}
for(int i=1;i<=m;i++)
{
cin>>l>>r;
v[l].push_back(r);
v[r].push_back(l);
}
prec();
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)
{
add(a[i].in,a[i].st);
}
int f=get_lead(1);
for(int i=0;i<valid[f].size();i++)
{
otg[valid[f][i]]=1;
}
for(int i=1;i<=n;i++)
{
cout<<otg[i];
}
cout<<endl;
}
int main()
{
speed();
read();
return 0;
}
Compilation message (stderr)
| # | 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... | ||||
