제출 #852042

#제출 시각아이디문제언어결과실행 시간메모리
852042allin27xColors (RMI18_colors)C++17
47 / 100
3042 ms11676 KiB
#include <bits/stdc++.h> using namespace std; int a[(int)2e5]; int b[(int)2e5]; vector<int> adj[(int)2e5]; int vis[(int)2e5+7]; void dfs(int i, int v){ a[i] = v; vis[i] = v; for (auto c: adj[i]){ if (vis[c] == v) continue; if (b[c] > v) continue; if (a[c] < v) continue; dfs(c, v); } } int solve(){ int n,m; cin>>n>>m; for (int i=0; i<n; i++) vis[i] = 0; for (int i=0; i<n; i++) adj[i].clear(); for (int i=0; i<n; i++) cin>>a[i]; for (int i=0; i<n; i++) cin>>b[i]; for (int i=0; i<m; i++){ int a,b; cin>>a>>b; a--; b--; adj[a].push_back(b); adj[b].push_back(a); } for (int v = n; v; v--){ for (int i=0; i<n; i++){ if (a[i] == v && vis[i] != v) dfs(i, v); } } for (int i=0; i<n; i++){ if (a[i] != b[i]) return 0; } return 1; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin>>t; while (t--){ cout << solve() << '\n'; } }
#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...