Submission #44974527


Source Code Expand

#include <bits/stdc++.h>
#define rep(i, n) for(int i=0;i<(int)(n);i++)
#define pb(a) push_back(a)
#define MAX(a, b) ((a < b)?b:a)
#define MIN(a, b) ((a > b)?b:a)
#define lcm(a, b) (a / gcd(a, b) * b) // 最小公倍数

typedef long long int ll;
typedef unsigned long long int ull;
typedef unsigned int uint;
using namespace std;
// -------------------------------------

class Node;

class Connect {
	public:
	Connect(Node* _node, int _cost) {
		node = _node;
		cost = _cost;
	}

	Node* node;
	int cost;
};

class Node {
	public:
	Node(int _id) {
		id = _id;
	} 
	int id;
	vector<Connect> list;
};

int N, M;
Node* node_list[10 + 1];



int solve(int from, int to, vector<int> path) {
	if ( from == to ) return 0;

	int cost_max = -1;
	path.pb(from);
	for (auto con : node_list[from]->list) {
		int next_node_id = con.node->id;
		if (count(path.begin(), path.end(), next_node_id)) break; // 次に行くところに行ったことがあったらもう行かない

		try {
			int cost = solve(next_node_id, to, path) + con.cost;
			if (cost_max < cost) cost_max = cost;
		} catch (...) {
			// この先のルートはないので何もしない
		}
	}

	if ( cost_max == -1 ) throw 0; // 行き止まりだった場合はこのルートを使わないようにする

	return cost_max;
}

int main() {
	cin >> N >> M;

	rep(i, N) {
		node_list[i + 1] = new Node(i + 1);
	}

	rep(i, M) {
		int a, b, c;
		cin >> a >> b >> c;
		
		node_list[a]->list.pb(Connect(node_list[b], c));
		node_list[b]->list.pb(Connect(node_list[a], c));
	}

	vector<int> path_zero;
	int ans = 0;

	for (int i = 1; i <= N; i++) {
		for (int j = 1; j <= N; j++) {
			try {
				int cost = solve(i, j, path_zero);
				if ( ans < cost ) ans = cost;
			} catch(...) {
				// このルートはたどり着かない
			}
		}
	}

	cout << ans << endl;

	return 0;
}

Submission Info

Submission Time
Task C - Remembering the Days
User saigo
Language C++ 20 (gcc 12.2)
Score 0
Code Size 1930 Byte
Status WA
Exec Time 18 ms
Memory 3672 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 300
Status
AC × 2
WA × 1
AC × 8
WA × 16
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
random_01.txt WA 9 ms 3484 KiB
random_02.txt WA 5 ms 3596 KiB
random_03.txt WA 1 ms 3596 KiB
random_04.txt AC 1 ms 3480 KiB
random_05.txt WA 10 ms 3516 KiB
random_06.txt WA 2 ms 3508 KiB
random_07.txt WA 2 ms 3520 KiB
random_08.txt AC 1 ms 3536 KiB
random_09.txt WA 12 ms 3540 KiB
random_10.txt AC 1 ms 3532 KiB
random_11.txt WA 1 ms 3516 KiB
random_12.txt WA 1 ms 3580 KiB
random_13.txt WA 10 ms 3612 KiB
random_14.txt WA 1 ms 3672 KiB
random_15.txt AC 1 ms 3540 KiB
random_16.txt WA 1 ms 3512 KiB
random_17.txt AC 1 ms 3480 KiB
random_18.txt AC 18 ms 3544 KiB
random_19.txt WA 13 ms 3512 KiB
random_20.txt WA 12 ms 3524 KiB
random_21.txt WA 11 ms 3520 KiB
sample_01.txt AC 1 ms 3540 KiB
sample_02.txt AC 1 ms 3516 KiB
sample_03.txt WA 2 ms 3520 KiB