| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1335226 | Luvidi | Rigged Roads (NOI19_riggedroads) | C++20 | 2095 ms | 52224 KiB |
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pll pair<ll, ll>
#define pii pair<int, int>
#define fs first
#define sc second
#define pb push_back
const int maxn=3e5;
vector<pii> ad[maxn+1];
vector<int> st;
bool dfs(int v,int p,int t){
if(v==t)return 1;
for(auto[u,w]:ad[v])if(u!=p){
st.pb(w);
if(dfs(u,v,t))return 1;
st.pop_back();
}
return 0;
}
void solve() {
int n,m;
cin>>n>>m;
pii ed[m+1];
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
ed[i]={u,v};
}
bool sp[m+1];
memset(sp,0,sizeof(sp));
for(int i=0;i<n-1;i++){
int x;
cin>>x;
sp[x]=1;
auto[u,v]=ed[x];
ad[u].pb({v,x});
ad[v].pb({u,x});
}
int ans[m+1],tt=0;
bool b[m+1];
memset(b,0,sizeof(b));
for(int i=1;i<=m;i++)if(!b[i]){
b[i]=1;
if(!sp[i]){
auto[u,v]=ed[i];
st.clear();
dfs(u,u,v);
sort(st.begin(),st.end());
for(int x:st){
if(!b[x]){
b[x]=1;
ans[x]=++tt;
}
}
}
ans[i]=++tt;
}
for(int i=1;i<=m;i++)cout<<ans[i]<<' ';
cout<<'\n';
}
int main() {
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
solve();
}| # | 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... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
