#include #include using namespace std; #define REP(i, N) for(int i=0;i<(N);++i) int find_index(vector &v, int value) { for (int i = 0; i < v.size(); ++i) { if (v[i] == value) return i; } return -1; } int main() { int n, m; cin >> n >> m; vector> scores(m, vector(3)); REP(i, m) cin >> scores[i][0] >> scores[i][1] >> scores[i][2]; vector items(n); iota(items.begin(), items.end(), 0); int max_score = 0; do { int sum_score = 0; for (auto &s : scores) { int index1 = find_index(items, s[0]); int index2 = find_index(items, s[1]); if (index1 < index2) sum_score += s[2]; } max_score = (max_score < sum_score) ? sum_score : max_score; } while (next_permutation(items.begin(), items.end())); cout << max_score << endl; }