秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1150342023-10-26 06:30:13momoyuuJcpp11/11AC8

#include<bits/stdc++.h>
using namespace std;
using ll = long long;

int main(){ 
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    
    ll n,m,x,p;
    cin>>n>>m>>x>>p;
    vector<ll> b(n),t(m);
    vector<int> vis(m,0);
    for(int i = 0;i<n;i++) cin>>b[i];
    for(int i = 0;i<m;i++) cin>>t[i];
    vector<int> need(m,0);
    for(int i = 0;i<n;i++) for(int j = 0;j<m;j++) if(abs(b[i]-t[j])<=p) need[j] = 1;
    int ans = 0;
    vector<vector<int>> g(m);
    for(int i = 0;i<x;i++){
        int u,v;
        cin>>u>>v;
        u--;v--;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    for(int i = 0;i<m;i++){
        if(vis[i]) continue;
        bool use = false;
        vector<int> que;
        que.push_back(i);
        vis[i]++;
        for(int j = 0;j<que.size();j++){
            int ni = que[j];
            if(need[ni]) use = 1;
            for(auto&to:g[ni]){
                if(vis[to]) continue;
                vis[to]++;
                que.push_back(to);
            }
        }
        if(use) ans++;
    }
    cout<<ans<<endl;

        
}

case1.txt AC 2
case2.txt AC 3
case3.txt AC 4
case4.txt AC 7
case5.txt AC 8
case6.txt AC 8
case9.txt AC 8
case10.txt AC 8
case11.txt AC 8
case13.txt AC 8
sample1.txt AC 7
8 AC8 AC