제출 #640842

#제출 시각아이디문제언어결과실행 시간메모리
640842Tenis0206Colors (RMI18_colors)C++11
47 / 100
3051 ms8696 KiB
#include <bits/stdc++.h>

using namespace std;

int n,m;

int a[100005],b[100005];
bool sel[100005];

bool ok[100005];

vector<int> G[100005];

void dfs(int nod, int cul)
{
    sel[nod] = true;
    if(b[nod]>cul || a[nod]<cul)
    {
        return;
    }
    if(b[nod]==cul)
    {
        ok[nod] = true;
    }
    for(auto it : G[nod])
    {
        if(sel[it])
        {
            continue;
        }
        dfs(it,cul);
    }
}

void solve_test()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;i++)
    {
        cin>>b[i];
    }
    for(int i=1;i<=m;i++)
    {
        int x,y;
        cin>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    for(int i=1;i<=n;i++)
    {
        dfs(i,a[i]);
        for(int j=1;j<=n;j++)
        {
            sel[j] = false;
        }
    }
    bool rez = true;
    for(int i=1;i<=n;i++)
    {
        if(!ok[i])
        {
            rez = false;
        }
        G[i].clear();
        ok[i] = false;
    }
    cout<<rez<<'\n';
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin>>t;
    for(int test=1; test<=t; test++)
    {
        solve_test();
    }
    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...