255122026-02-20 13:13:21KevinSportos nyaraláscpp17Időlimit túllépés 16/401.1s1588 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using pll=pair<ll, ll>;

vector<ll> bicikli, kajak;

ll rootB(ll x){
    if (bicikli[x]==x) return x;
    bicikli[x]=rootB(bicikli[x]);
    return bicikli[x];
}

ll rootK(ll x){
    if (kajak[x]==x) return x;
    kajak[x]=rootK(kajak[x]);
    return kajak[x];
}

void unioB(ll a, ll b){
    a=rootB(a); b=rootB(b);
    if (a>b) swap(a, b);
    bicikli[b]=a;
}

void unioK(ll a, ll b){
    a=rootK(a); b=rootK(b);
    if (a>b) swap(a, b);
    kajak[b]=a;
}

int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    ll n, m, k; cin >> n >> m >> k;
    bicikli.resize(n); kajak.resize(n);
    for (ll i=0; i<n; i++){
        bicikli[i]=i; kajak[i]=i;
    }
    for (ll i=0; i<m; i++){
        ll a, b; cin >> a >> b; a--; b--;
        unioB(a, b);
    }
    vector<ll> out(n, 0);
    for (ll i=0; i<k; i++){
        ll a, b; cin >> a >> b; a--; b--;
        unioK(a, b);
    }
    for (ll i=0; i<n-1; i++){
        for (ll j=i+1; j<n; j++){
            if (rootB(i)==rootB(j) && rootK(i)==rootK(j)){
                out[i]++; out[j]++;
            }
        }
    }
    for (auto& z:out) cout << z << ' ';
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base16/40
1Elfogadva0/01ms316 KiB
2Időlimit túllépés0/01.085s1588 KiB
3Elfogadva1/11ms512 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms344 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva1/11ms500 KiB
9Elfogadva1/11ms316 KiB
10Elfogadva1/12ms316 KiB
11Elfogadva2/24ms336 KiB
12Elfogadva2/22ms316 KiB
13Elfogadva2/28ms500 KiB
14Elfogadva2/27ms448 KiB
15Időlimit túllépés0/21.1s908 KiB
16Időlimit túllépés0/21.098s1332 KiB
17Időlimit túllépés0/31.098s1480 KiB
18Időlimit túllépés0/31.08s1588 KiB
19Időlimit túllépés0/21.075s1076 KiB
20Időlimit túllépés0/21.1s1336 KiB
21Időlimit túllépés0/21.1s1588 KiB
22Időlimit túllépés0/21.083s1476 KiB
23Időlimit túllépés0/31.087s1588 KiB
24Időlimit túllépés0/31.1s1472 KiB