結果
問題 | No.994 ばらばらコイン |
ユーザー |
|
提出日時 | 2020-02-21 21:27:06 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 827 bytes |
コンパイル時間 | 4,465 ms |
コンパイル使用メモリ | 177,332 KB |
実行使用メモリ | 10,240 KB |
最終ジャッジ日時 | 2024-10-08 21:02:01 |
合計ジャッジ時間 | 3,647 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 7 WA * 16 |
ソースコード
#include"bits/stdc++.h" using namespace std; #define REP(k,m,n) for(int (k)=(m);(k)<(n);(k)++) #define rep(i,n) REP((i),0,(n)) using ll = long long; int main() { ll N, K; cin >> N >> K; if (N < K) { cout << -1 << endl; return 0; } vector<vector<ll>> edges(N); rep(i, N - 1) { int a, b; cin >> a >> b; a--; b--; edges[a].push_back(b); edges[b].push_back(a); } vector<ll> d(N, 1 << 20); queue<ll> q; d[0] = 0; q.push(0); while (!q.empty()) { ll now = q.front(); q.pop(); for (int next : edges[now])if (d[now] < d[next]) { d[next] = d[now] + 1; q.push(next); } } sort(d.begin(), d.end()); cout << accumulate(d.begin(), d.begin() + K, 0ll) << endl; return 0; }