結果
| 問題 | No.3751 Nonopoly |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-08-08 18:51:38 |
| 言語 | C++17 (gcc 15.3.0 + boost 1.92.0 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 1,201 bytes |
| 記録 | |
| コンパイル時間 | 1,287 ms |
| コンパイル使用メモリ | 228,268 KB |
| 実行使用メモリ | 21,552 KB |
| 最終ジャッジ日時 | 2026-10-02 20:53:56 |
| 合計ジャッジ時間 | 5,623 ms |
|
ジャッジサーバーID (参考情報) |
judge4_1 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 29 WA * 21 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, M;
cin >> N >> M;
vector<vector<int>> g(N);
vector<long long> D(N);
for (int i = 0; i < M; ++i) {
int u, v;
long long w;
cin >> u >> v >> w;
u--, v--;
g[u].push_back(v);
g[v].push_back(u);
D[u] += w;
D[v] += w;
}
vector<int> used(N);
long long ans2 = 0;
for (int s = 0; s < N; ++s) {
if (used[s]) continue;
vector<int> comp;
queue<int> q;
q.push(s);
used[s] = 1;
while (!q.empty()) {
int v = q.front();
q.pop();
comp.push_back(v);
for (int to : g[v]) {
if (used[to]) continue;
used[to] = 1;
q.push(to);
}
}
vector<long long> a;
for (int v : comp) a.push_back(D[v]);
sort(a.begin(), a.end(), greater<>());
for (int i = 0; i < (int)a.size(); ++i) {
if (i % 2 == 0) ans2 += a[i];
else ans2 -= a[i];
}
}
cout << ans2 / 2 << '\n';
}