Ada jaringan hingga 26 node (bernama A
ke Z
atau a
ke z
sesuai keinginan Anda). Setiap pasangan node dapat terhubung atau terputus. Sebuah node dapat terhubung ke paling banyak 4 node lainnya. Tugas Anda adalah menggambar jaringan dalam diagram 2D. Input akan diberikan sehingga tugas ini dimungkinkan (lihat lebih banyak kendala di bagian output).
Format
Memasukkan
- Pasangan surat (
A
keZ
ataua
kez
sesuai keinginan Anda). Mereka tidak diurutkan dalam urutan apa pun. - Opsional - jumlah pasangan
Keluaran
- Gambar ASCII yang menunjukkan tautan aktual antara node. Node diberikan oleh
a
kez
atauA
keZ
. Gunakan-
untuk tautan horisontal dan|
untuk tautan vertikal. Tautan bisa memiliki panjang (non-nol) tetapi harus lurus / garis vertikal lurus yang tidak bengkok . Spasi dapat ditambahkan asalkan tidak merusak gambar.
Anda tidak boleh menggunakan bawaan yang membantu dalam tata letak grafik. Built-in terkait grafik lainnya mungkin diizinkan (meskipun solusi tanpa built-in akan lebih dihargai). Kode terpendek menang.
Contoh data
Memasukkan
A B
B F
B L
F K
L K
K R
K S
R P
S J
S P
J A
T V
V N
Keluaran
A - B - F T - V
| | | |
| L - K - R N
| | |
J ----- S - P
Memasukkan
H C
G H
A B
B F
B C
F G
C D
D A
Keluaran
A - B ----- F
| | |
D - C - H - G
code-golf
ascii-art
graph-theory
ghosts_in_the_code
sumber
sumber
H A
dan edge tidak ada dalam output yang diberikan. Sunting: masalah diidentifikasi dan diperbaiki.Jawaban:
CJam, 142
Anda tidak meminta solusi yang optimal, deterministik atau cepat, jadi begini:
Cobalah online
Ini menghasilkan koordinat acak untuk setiap huruf dan menguji jika tata letak dapat diterima (huruf tepi berbaris dan tidak ada persimpangan), sampai akhirnya. Pikiran menjadi mati rasa lambat ketika Anda menambahkan lebih banyak tepi.
Dua
D
huruf dalam kode menentukan koordinat x dan y maksimum; Saya memilihD
(= 13) karena saya pikir itu sudah cukup untuk semua kasus, jangan ragu untuk membuktikan saya salah. Tetapi Anda dapat mengubahnya ke nilai lain untuk mempercepat program, misalnya contoh ke-2 akan selesai dalam satu atau dua menit jika Anda menggunakan 3 dan 4 sebagai gantinya.sumber
C, 813 byte
Mengambil input sebagai argumen commandline, misalnya:
Tidak ada yang bersaing dengan jawaban aditsu berdasarkan ukuran, tetapi jauh lebih efisien!
Ini akan memaksa semua solusi yang mungkin terjadi, tetapi akan segera mengenali kegagalan. Untuk dua kasus uji, hampir selesai dengan segera, dan tampaknya hanya membutuhkan beberapa detik pada input yang lebih canggung. Ini juga tidak memiliki batasan untuk nama-nama simpul yang diterima (meskipun Anda tidak dapat menyebutkan satu spasi,
|
atau-
) dan tidak memiliki batasan pada jumlah node (selama semua nama sesuai dalam byte, sehingga batas praktisnya adalah 252 node, dan itu akan lambat jauh sebelum mencapai sebanyak itu).Ada banyak ruang untuk mempercepat ini; banyak hubungan arus pendek hilang karena bermain golf, dan ada bagian yang bisa dipindahkan dari hot-loop. Juga beberapa pengamatan simetri dapat secara dramatis mengurangi posisi 2 node pertama, antara lain.
Kerusakan:
sumber