Submission #643133

#TimeUsernameProblemLanguageResultExecution timeMemory
643133SlavicGColors (RMI18_colors)C++17
47 / 100
3077 ms8292 KiB
#include "bits/stdc++.h" using namespace std; #define ll long long #define sz(a) (int)a.size() #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(),a.rend() #define pb push_back #define forn(i, n) for(int i = 0; i < n; ++i) const int N = 1e5 + 10; vector<int> adj[N]; int a[N], b[N]; void solve() { int n, m; cin >> n >> m; forn(i, n) 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 u, v; cin >> u >> v; --u, --v; adj[u].pb(v); adj[v].pb(u); } priority_queue<pair<int, int>> nodes; for(int i = 0; i < n; ++i) { nodes.push({a[i], i}); } while(!nodes.empty()) { int u = nodes.top().second; nodes.pop(); for(int v: adj[u]) { if(a[v] != b[v] && a[v] > a[u]) { a[v] = a[u]; nodes.push({a[v], v}); } } } forn(i, n) { if(a[i] != b[i]) { cout << "0\n"; return; } } cout << "1\n"; } int main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int t; cin >> t; while(t--) { solve(); } }
#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...