제출 #1005125

#제출 시각아이디문제언어결과실행 시간메모리
1005125ereringOne-Way Streets (CEOI17_oneway)C++17
30 / 100
1497 ms3676 KiB
#include <bits/stdc++.h> using namespace std; #define endl '\n' #define pb push_back #define ll long long #define int long long const long long inf=1e18; const int MOD=1e9+7; const int N=1001; int n,m; multiset<int> adj[N]; bool vis[N],ans=0; //pos1=Right po2=Left int pos1[N],pos2[N]; void func(int node,int goal){ if(node==goal || ans){ ans=1; return; } for(auto i:adj[node]){ if(!vis[i]){ vis[i]=1; func(i,goal); } } } signed main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n>>m; pair<int,int> a[m]; for(int i=0;i<m;i++){ int x,y; cin>>x>>y; a[i].first=x; a[i].second=y; adj[x].insert(y); adj[y].insert(x); } int p; cin>>p; int fr=p; while(p--){ int st,en; cin>>st>>en; for(int i=0;i<m;i++){ int x=a[i].first,y=a[i].second; adj[y].extract(x); func(st,en); if(ans)pos1[i]++; for(int j=0;j<=n;j++)vis[j]=0; ans=0; adj[y].insert(x); adj[x].extract(y); func(st,en); if(ans)pos2[i]++; for(int j=0;j<=n;j++)vis[j]=0; ans=0; adj[x].insert(y); } } for(int i=0;i<m;i++){ if(pos1[i]==fr && pos2[i]==fr)cout<<'B'; else if(pos1[i]==fr)cout<<'R'; else cout<<'L'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...