66822023-12-16 14:00:57anonAdószedőcpp17Futási hiba 12/30131ms64844 KiB
#include <bits/stdc++.h>
#define FastIO ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
typedef long long ll;
using namespace std;
const ll INF = ~(1LL << 63);
int main() {
    FastIO;
    ll i, N, M, capital, n1, n2, key;
    vector<ll> edge(2);
    queue<array<ll, 3>> q;
    cin >> N >> M >> capital;
    unordered_set<ll> ans(M);
    vector<vector<ll>> G(N + 1);
    vector<ll> dist(N + 1, INF);
    for(i = 0; i < M; i++) {
        cin >> n1 >> n2;
        G[n1].push_back(n2);
        G[n2].push_back(n1);
    }
    q.push({ capital, 0, 0 });
    while(!q.empty()) {
        array<ll, 3> cs = q.front();
        q.pop();
        if(dist[cs[0]] < cs[2])
            continue;
        dist[cs[0]] = cs[2];
        if(cs[1]) {
            edge[0] = cs[0];
            edge[1] = cs[1];
            sort(edge.begin(), edge.end());
            key = edge[0] | (edge[1] << 32);
            ans.insert(key);
        }
        for(const auto &x : G[cs[0]]) {
            if(dist[x] > cs[2])
                q.push({ x, cs[0], cs[2] + 1 });
        }
    }
    cout << ans.size() << '\n';
    for(const auto &x : ans)
        cout << (x & ((1LL << 32) - 1)) << ' ' << (x >> 32) << '\n';
    return 0;
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base12/30
1Elfogadva0/03ms1824 KiB
2Futási hiba0/0112ms64844 KiB
3Elfogadva1/13ms2380 KiB
4Elfogadva1/13ms2620 KiB
5Elfogadva1/13ms2820 KiB
6Elfogadva1/13ms2784 KiB
7Elfogadva1/13ms3052 KiB
8Elfogadva1/150ms28388 KiB
9Elfogadva2/23ms3108 KiB
10Elfogadva2/24ms3164 KiB
11Elfogadva2/24ms3164 KiB
12Futási hiba0/265ms64084 KiB
13Futási hiba0/276ms63848 KiB
14Futási hiba0/2104ms63748 KiB
15Futási hiba0/1115ms63760 KiB
16Futási hiba0/1108ms63576 KiB
17Futási hiba0/2123ms63352 KiB
18Futási hiba0/2114ms63328 KiB
19Futási hiba0/2118ms63312 KiB
20Futási hiba0/2131ms63304 KiB
21Futási hiba0/2116ms63144 KiB