Submission #996580


Source Code Expand

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

typedef pair<int,int> ii;
typedef pair<long long, ii> iii;

class UnionFindDS{
private:
    vector<int> p, sz;   // parent, size
    int num;
public:
    UnionFindDS(int N){
        p.assign(N,0); for (int i = 0; i < N; i++) p[i] = i;
        sz.assign(N,1); num = N;
    }
    int numSets(){ return num; }
    int findSet(int i){ return p[i] == i ? i : p[i] = findSet(p[i]); }
    int sizeSet(int i){ return sz[findSet(i)]; }
    bool isSameSet(int i, int j){ return findSet(i) == findSet(j); }
    void unionSet(int i, int j){
        if ((i = findSet(i)) == (j = findSet(j))) return;
        
        num--;
        p[j] = i; sz[i] += sz[j];
    }
};

int N, M, Q;
vector<iii> edge;

int main() {

    scanf("%d%d", &N, &M);
    for (int i = 0, u, v; i < M; i++) {
        long long w;
        scanf("%d%d%lld", &u, &v, &w);

        edge.push_back(iii(w, ii(u, v)));
    }

    sort(edge.begin(), edge.end());

    scanf("%d", &Q);
    for (int i = 0, u, v; i < Q; i++) {
        scanf("%d%d", &u, &v);

        UnionFindDS uf(N+1);
        uf.unionSet(u, v);

        long long ans = 0;
        for (int i = 0; i < edge.size(); i++) {
            long long w = edge[i].first;
            long long u = edge[i].second.first;
            long long v = edge[i].second.second;

            if (uf.isSameSet(u, v)) continue;

            uf.unionSet(u, v); ans += w;
        }

        printf("%lld\n", ans);
    }

    return 0;
}

Submission Info

Submission Time
Task A - Graph
User crispy
Language C++14 (GCC 5.4.1)
Score 200
Code Size 1542 Byte
Status TLE
Exec Time 3155 ms
Memory 8556 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:33:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &N, &M);
                          ^
./Main.cpp:36:38: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%lld", &u, &v, &w);
                                      ^
./Main.cpp:43:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &Q);
                    ^
./Main.cpp:45:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &u, &v);
                              ^

Judge Result

Set Name Sample subtask1 subtask2 All
Score / Max Score 0 / 0 200 / 200 0 / 300 0 / 200
Status
AC × 2
AC × 12
AC × 16
TLE × 5
AC × 16
TLE × 13
Set Name Test Cases
Sample sample_1.txt, sample_2.txt
subtask1 sample_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt
subtask2 sample_1.txt, sample_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt
All sample_1.txt, sample_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_3_1.txt, subtask_3_2.txt, subtask_3_3.txt, subtask_3_4.txt, subtask_3_5.txt, subtask_3_6.txt, subtask_3_7.txt, subtask_3_8.txt
Case Name Status Exec Time Memory
sample_1.txt AC 2 ms 256 KB
sample_2.txt AC 2 ms 256 KB
subtask_1_1.txt AC 3 ms 256 KB
subtask_1_10.txt AC 77 ms 4464 KB
subtask_1_11.txt AC 2 ms 256 KB
subtask_1_2.txt AC 17 ms 1400 KB
subtask_1_3.txt AC 153 ms 8556 KB
subtask_1_4.txt AC 4 ms 384 KB
subtask_1_5.txt AC 4 ms 432 KB
subtask_1_6.txt AC 39 ms 2420 KB
subtask_1_7.txt AC 153 ms 8556 KB
subtask_1_8.txt AC 4 ms 384 KB
subtask_1_9.txt AC 6 ms 640 KB
subtask_2_1.txt TLE 3155 ms 8556 KB
subtask_2_2.txt TLE 3154 ms 8556 KB
subtask_2_3.txt TLE 3155 ms 8556 KB
subtask_2_4.txt TLE 3155 ms 8556 KB
subtask_2_5.txt AC 291 ms 384 KB
subtask_2_6.txt AC 1131 ms 892 KB
subtask_2_7.txt AC 2035 ms 2420 KB
subtask_2_8.txt TLE 3155 ms 8556 KB
subtask_3_1.txt TLE 3155 ms 8556 KB
subtask_3_2.txt TLE 3155 ms 8556 KB
subtask_3_3.txt TLE 3154 ms 896 KB
subtask_3_4.txt TLE 3154 ms 640 KB
subtask_3_5.txt TLE 3154 ms 4464 KB
subtask_3_6.txt TLE 3154 ms 8556 KB
subtask_3_7.txt TLE 3155 ms 8556 KB
subtask_3_8.txt TLE 3155 ms 8556 KB