13872022-08-30 14:02:18balintttSportos nyaraláscpp17Hibás válasz 12/40178ms19836 KiB
#include<bits/stdc++.h>

using namespace std;

int n, m, k;

class pont{
public:
    vector<int> hova1;
    vector<int> hova2;
    int comp1 = -1;
    int comp2 = -1;
    void dfs1(int mi);
    void dfs2(int mi);
};

vector<pont> p;

void pont::dfs1(int mi){
    if(comp1 == -1){
        comp1 = mi;
        for (int i : hova1){
            p[i].dfs1(mi);
        }
    }
}

void pont::dfs2(int mi){
    if(comp2 == -1){
        comp2 = mi;
        for (int i : hova2){
            p[i].dfs2(mi);
        }
    }
}

int main(){
    cin >> n >> m >> k;
    p.resize(n);
    int a, b;
    for(int i=0;i<m;i++){
        cin >> a >> b;
        --a; --b;
        p[a].hova1.push_back(b);
        p[b].hova1.push_back(a);
    }
    for(int i=0;i<m;i++){
        cin >> a >> b;
        --a; --b;
        p[a].hova2.push_back(b);
        p[b].hova2.push_back(a);
    }
    for(int i=0;i<n;i++){
        p[i].dfs1(i);
        p[i].dfs2(i);
    }
    map<pair<int,int>, int> m;
    for(pont& pp : p){
        ++m[{pp.comp1, pp.comp2}];
    }
    for(pont& pp : p){
        cout << m[{pp.comp1, pp.comp2}]-1 << ' ';
    }

return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base12/40
1Elfogadva0/03ms1812 KiB
2Hibás válasz0/079ms17720 KiB
3Elfogadva1/12ms2304 KiB
4Hibás válasz0/12ms2460 KiB
5Elfogadva1/12ms2660 KiB
6Elfogadva1/12ms2768 KiB
7Elfogadva1/12ms3116 KiB
8Hibás válasz0/12ms3188 KiB
9Hibás válasz0/12ms3348 KiB
10Elfogadva1/14ms3784 KiB
11Hibás válasz0/23ms4072 KiB
12Hibás válasz0/24ms4004 KiB
13Elfogadva2/217ms4728 KiB
14Elfogadva2/213ms4632 KiB
15Hibás válasz0/246ms13284 KiB
16Futási hiba0/246ms12468 KiB
17Hibás válasz0/379ms19836 KiB
18Futási hiba0/357ms14728 KiB
19Hibás válasz0/278ms12336 KiB
20Hibás válasz0/2104ms15192 KiB
21Futási hiba0/298ms16220 KiB
22Hibás válasz0/2101ms18516 KiB
23Hibás válasz0/3153ms18516 KiB
24Elfogadva3/3178ms19684 KiB