제출 #222991

#제출 시각아이디문제언어결과실행 시간메모리
222991dolphingarlic시간이 돈 (balkan11_timeismoney)C++14
50 / 100
12 ms512 KiB
#include <bits/stdc++.h> #define FOR(i, x, y) for (int i = x; i < y; i++) typedef long long ll; using namespace std; struct Line { int u, v, t, c; bool operator<(Line B) { return t + c + t * c < B.t + B.c + t * c; } } lines[10000]; int cmp[200]; int find(int A) { while (A != cmp[A]) cmp[A] = cmp[cmp[A]], A = cmp[A]; return A; } void onion(int A, int B) { cmp[find(A)] = cmp[find(B)]; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; FOR(i, 0, m) cin >> lines[i].u >> lines[i].v >> lines[i].t >> lines[i].c; sort(lines, lines + m); iota(cmp, cmp + n, 0); vector<Line> res; int t = 0, c = 0; FOR(i, 0, m) { if (find(lines[i].u) != find(lines[i].v)) { t += lines[i].t, c += lines[i].c; onion(lines[i].u, lines[i].v); res.push_back(lines[i]); } } cout << t << ' ' << c << '\n'; for (Line i : res) cout << i.u << ' ' << i.v << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...