#include <bits/stdc++.h>
using namespace std;
vector<int> a;
vector<int> b;
vector<vector<int>> adj(150005);
void solve (){
int n, m;
cin >> n >> m;
a.resize(n+1); b.resize(n+1);
int b_min = INT_MAX;
unordered_set<int> aelem, belem;
for (int i = 1; i <= n; i++){
cin >> a[i];
aelem.insert(a[i]);
}
for (int i = 1; i <= n; i++){
cin >> b[i];
b_min = min(b_min, b[i]);
belem.insert(b[i]);
}
for(int i = 1; i <= n; i++){
if (a[i] < b[i]){
cout << 0 << '\n';
return;
}
}
for(int i : belem){
if (!aelem.count(i)){
cout << 0 << '\n';
return;
}
}
for (int i = 0; i < m; i++){
int x, y;
cin >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
int thatnode = 0;
for (int i = 1; i <= n; i++){
if (adj[i].size() > adj[thatnode].size()){
thatnode = i;
}
}
if(b[thatnode] == b_min){
cout << 1 << '\n';
}
else cout << 0 << '\n';
}
int main(){
int t;
cin >> t;
while (t--) solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |