Submission #858391

#TimeUsernameProblemLanguageResultExecution timeMemory
858391alexddColors (RMI18_colors)C++17
47 / 100
3029 ms12456 KiB
#include<bits/stdc++.h> using namespace std; const int INF = 1e9; int n,m; pair<int,int> edges[200005]; int a[200005]; int b[200005]; vector<int> con[200005]; bool good[200005]; bool visited[200005]; int mnm=INF; void dfs(int nod) { visited[nod]=1; mnm=min(mnm,a[nod]); for(auto adj:con[nod]) if(!visited[adj] && good[adj]) dfs(adj); } signed main() { ios_base::sync_with_stdio(0);cin.tie(0); int t; cin>>t; while(t--) { cin>>n>>m; for(int i=1;i<=n;i++) { con[i].clear(); cin>>a[i]; } for(int i=1;i<=n;i++) cin>>b[i]; for(int i=0;i<m;i++) { cin>>edges[i].first>>edges[i].second; con[edges[i].first].push_back(edges[i].second); con[edges[i].second].push_back(edges[i].first); } bool bl=1; for(int i=1;i<=n;i++) { if(a[i]<b[i]) { bl=0; break; } if(a[i]==b[i]) continue; for(int j=1;j<=n;j++) { if(a[j]>=b[i] && b[j]<=b[i]) good[j]=1; else good[j]=0; visited[j]=0; } mnm=INF; dfs(i); if(mnm!=b[i]) { //cout<<i<<" "<<mnm<<" zzz\n"; bl=0; break; } } if(bl) cout<<1<<"\n"; else cout<<0<<"\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...