제출 #48045

#제출 시각아이디문제언어결과실행 시간메모리
48045E869120구슬과 끈 (APIO14_beads)C++14
13 / 100
1075 ms408 KiB
#include <iostream> #include <algorithm> #include <vector> using namespace std; int N, A[100009], B[100009], C[100009], e[10], f[10], g[10][10], maxn; int main() { cin >> N; for (int i = 0; i < N - 1; i++) { cin >> A[i] >> B[i] >> C[i]; A[i]--; B[i]--; } int d[10] = { 0,1,2,3,4,5,6,7,8,9 }; do { for (int i = 0; i < N; i++) { e[i] = 0; f[i] = 0; } int cnt = 0; bool OK = true; for (int i = 0; i < N - 1; i++) { if (d[A[i]] < d[B[i]]) { g[B[i]][e[B[i]]] = A[i]; e[B[i]]++; f[B[i]] += C[i]; } else { g[A[i]][e[A[i]]] = B[i]; e[A[i]]++; f[A[i]] += C[i]; } } for (int i = 0; i < N; i++) { if (e[i] >= 3) OK = false; if (e[i] == 2 && (e[g[i][0]] >= 1 && e[g[i][1]] >= 1)) OK = false; if (e[i] == 2) cnt += f[i]; } if (OK == true) maxn = max(maxn, cnt); } while (next_permutation(d, d + N)); cout << maxn << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...