秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1148312023-10-24 08:40:55n_o_n_o_nJcpp11/11WA26

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

ll N,M,X,P;
ll B[100],T[1<<17];
vector<ll> G[1<<17];
bool check[1<<17],vis[1<<17];

int main(){
    cin>>N>>M>>X>>P;
    for(int i=0; i<N; i++)cin>>B[i];
    for(int j=0; j<M; j++)
    {
        cin>>T[j];
        for(int i=0; i<N; i++)
        {
            if(abs(B[i]-T[j])<P)check[j]=1;
        }
    }
    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);
    }
    int ans=0;
    for(int i=0; i<M; i++)if(check[i]&&!vis[i])
    {
        vis[i]=1;
        ans++;
        queue<int>q;
        q.push(i);
        while(!q.empty())
        {
            int u=q.front();
            q.pop();
            for(int v:G[u])
            {
                if(vis[v])continue;
                vis[v]=1;
                q.push(v);
            }
        }
    }
    cout << ans << endl;
}

case1.txt AC 8
case2.txt AC 9
case3.txt AC 10
case4.txt AC 11
case5.txt AC 13
case6.txt AC 26
case9.txt AC 24
case10.txt AC 18
case11.txt AC 23
case13.txt WA 26
sample1.txt AC 24
26 WA26 WA