Diberikan grafik terarah, menghasilkan siklus terpanjang.
Aturan
- Format input yang masuk akal diizinkan (misalnya daftar tepi, matriks konektivitas).
- Label tidak penting, jadi Anda dapat memberlakukan batasan pada label yang Anda butuhkan dan / atau inginkan, asalkan label tersebut tidak mengandung informasi tambahan yang tidak diberikan dalam input (mis. Anda tidak dapat mengharuskan bahwa node dalam siklus adalah dilabeli dengan bilangan bulat, dan simpul lainnya diberi label dengan string alfabet).
- Siklus adalah urutan node yang semuanya terhubung, dan tidak ada simpul yang diulang, selain simpul yang merupakan awal dan akhir siklus (
[1, 2, 3, 1]
adalah siklus, tetapi[1, 2, 3, 2, 1]
tidak). - Jika grafik asiklik, siklus terpanjang memiliki panjang 0, dan karenanya akan menghasilkan output kosong (mis. Daftar kosong, tidak ada output sama sekali).
- Mengulang simpul pertama di akhir daftar node dalam siklus adalah opsional (
[1, 2, 3, 1]
dan[1, 2, 3]
menunjukkan siklus yang sama). - Jika ada beberapa siklus dengan panjang yang sama, salah satu atau semuanya mungkin merupakan output.
- Builtin diperbolehkan, tetapi jika solusi Anda menggunakannya, Anda disarankan untuk memasukkan solusi alternatif yang tidak menggunakan builtin yang diremehkan (misalnya builtin yang menghasilkan semua siklus). Namun, solusi alternatif tidak akan dihitung sama sekali dengan skor Anda, sehingga sepenuhnya opsional.
Uji Kasus
Dalam kasus uji ini, input diberikan sebagai daftar tepi (di mana elemen pertama adalah simpul sumber dan elemen kedua adalah simpul tujuan), dan outputnya adalah daftar simpul tanpa pengulangan simpul pertama / terakhir.
[(0, 0), (0, 1)] -> [0]
[(0, 1), (1, 2)] -> []
[(0, 1), (1, 0)] -> [0, 1]
[(0, 1), (1, 2), (1, 3), (2, 4), (4, 5), (5, 1)] -> [1, 2, 4, 5]
[(0, 1), (0, 2), (1, 3), (2, 4), (3, 0), (4, 6), (6, 8), (8, 0)] -> [0, 2, 4, 6, 8]
[(0, 0), (0, 8), (0, 2), (0, 3), (0, 9), (1, 0), (1, 1), (1, 6), (1, 7), (1, 8), (1, 9), (2, 1), (2, 3), (2, 4), (2, 5), (3, 8), (3, 1), (3, 6), (3, 7), (4, 1), (4, 3), (4, 4), (4, 5), (4, 6), (4, 8), (5, 0), (5, 8), (5, 4), (6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6), (6, 7), (6, 9), (7, 0), (7, 1), (7, 2), (7, 3), (7, 4), (7, 5), (7, 8), (7, 9), (8, 0), (8, 1), (8, 2), (8, 5), (8, 9), (9, 1), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6)] -> [0, 9, 6, 7, 8, 2, 5, 4, 3, 1]
[(0, 0), (0, 2), (0, 4), (0, 5), (0, 7), (0, 9), (0, 11), (1, 2), (1, 4), (1, 5), (1, 8), (1, 9), (1, 10), (2, 0), (2, 1), (2, 3), (2, 4), (2, 5), (2, 6), (3, 0), (3, 1), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (3, 11), (4, 1), (4, 3), (4, 7), (4, 8), (4, 9), (4, 10), (4, 11), (5, 0), (5, 4), (5, 6), (5, 7), (5, 8), (5, 11), (6, 0), (6, 8), (6, 10), (6, 3), (6, 9), (7, 8), (7, 9), (7, 2), (7, 4), (7, 5), (8, 8), (8, 9), (8, 2), (8, 4), (8, 7), (9, 0), (9, 1), (9, 2), (9, 3), (9, 6), (9, 10), (9, 11), (10, 8), (10, 3), (10, 5), (10, 6), (11, 2), (11, 4), (11, 5), (11, 9), (11, 10), (11, 11)] -> [0, 11, 10, 6, 9, 3, 8, 7, 5, 4, 1, 2]