Submission #3964152
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAXN = 4005;
const int MAXM = 400005;
struct Edge {
int u, v, w;
bool inline operator < (const Edge &rhs) const {
return w < rhs.w;
}
};
class DSU {
private:
vector<int> pset;
public:
DSU(int n) {
pset.resize(n);
for(int i = 0; i < n; ++i)
pset[i] = i;
}
int findSet(int i) {
return (pset[i] == i) ? i : (pset[i] = findSet(pset[i]));
}
bool unionSet(int i, int j) {
int p = findSet(i), q = findSet(j);
if (p == q)
return false;
pset[p] = q;
return true;
}
};
int n, m, q, maxW[MAXN][MAXN], root;
Edge e[MAXM];
vector<int> g[MAXN];
void DFS(int u, int par) {
for(int i: g[u]) {
int v = e[i].u + e[i].v - u;
if (v == par)
continue;
maxW[root][v] = max(maxW[root][u], e[i].w);
DFS(v, u);
}
}
int main () {
scanf("%d%d", &n, &m);
for(int i = 0; i < m; ++i) {
scanf("%d%d%d", &e[i].u, &e[i].v, &e[i].w);
--e[i].u;
--e[i].v;
}
sort(e, e+m);
DSU s(n);
ll mstWeight = 0;
for(int i = 0; i < m; ++i) {
int u = e[i].u, v = e[i].v;
if (s.unionSet(u, v)) {
g[u].push_back(i);
g[v].push_back(i);
mstWeight += e[i].w;
}
}
for(int u = 0; u < n; ++u) {
root = u;
DFS(u, -1);
}
scanf("%d", &q);
for(int i = 0; i < q; ++i) {
int u, v;
scanf("%d%d", &u, &v);
--u; --v;
ll ans = mstWeight - maxW[u][v];
printf("%lld\n", ans);
}
return 0;
}
Submission Info
Submission Time |
|
Task |
A - Graph |
User |
xuanquang1999 |
Language |
C++14 (GCC 5.4.1) |
Score |
700 |
Code Size |
1817 Byte |
Status |
AC |
Exec Time |
675 ms |
Memory |
68864 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:60: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:62:51: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d", &e[i].u, &e[i].v, &e[i].w);
^
./Main.cpp:85:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &q);
^
./Main.cpp:88: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 |
300 / 300 |
200 / 200 |
Status |
|
|
|
|
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, 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 |
2432 KB |
sample_2.txt |
AC |
2 ms |
2432 KB |
subtask_1_1.txt |
AC |
2 ms |
4480 KB |
subtask_1_10.txt |
AC |
579 ms |
67712 KB |
subtask_1_11.txt |
AC |
2 ms |
2432 KB |
subtask_1_2.txt |
AC |
521 ms |
64256 KB |
subtask_1_3.txt |
AC |
640 ms |
67712 KB |
subtask_1_4.txt |
AC |
441 ms |
63744 KB |
subtask_1_5.txt |
AC |
492 ms |
63872 KB |
subtask_1_6.txt |
AC |
540 ms |
64896 KB |
subtask_1_7.txt |
AC |
635 ms |
67712 KB |
subtask_1_8.txt |
AC |
432 ms |
63872 KB |
subtask_1_9.txt |
AC |
510 ms |
63872 KB |
subtask_2_1.txt |
AC |
635 ms |
67840 KB |
subtask_2_2.txt |
AC |
631 ms |
67840 KB |
subtask_2_3.txt |
AC |
636 ms |
67840 KB |
subtask_2_4.txt |
AC |
639 ms |
67840 KB |
subtask_2_5.txt |
AC |
428 ms |
63872 KB |
subtask_2_6.txt |
AC |
519 ms |
64000 KB |
subtask_2_7.txt |
AC |
538 ms |
65024 KB |
subtask_2_8.txt |
AC |
635 ms |
67840 KB |
subtask_3_1.txt |
AC |
675 ms |
68864 KB |
subtask_3_2.txt |
AC |
673 ms |
68864 KB |
subtask_3_3.txt |
AC |
466 ms |
65152 KB |
subtask_3_4.txt |
AC |
554 ms |
65152 KB |
subtask_3_5.txt |
AC |
604 ms |
68864 KB |
subtask_3_6.txt |
AC |
641 ms |
68864 KB |
subtask_3_7.txt |
AC |
666 ms |
68864 KB |
subtask_3_8.txt |
AC |
666 ms |
68864 KB |