Submission #1005125

#TimeUsernameProblemLanguageResultExecution timeMemory
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...