Ini sederhana: cetak grafik ASCII Gantt .
Rentang tugas yang diberikan (waktu mulai - Tupel waktu akhir), cetak garis waktu Gantt dalam bentuk -
karakter untuk setiap durasi tugas - setiap tugas di baris baru.
Contoh
Katakanlah rentang tugas saya adalah 28->35, 34->40, 39->44
, Gantt akan terlihat seperti ini:
-------
------
-----
Spesifikasi
- Anda dapat menulis program lengkap, fungsi bernama atau fungsi anonim.
- Program / fungsi Anda harus menerima tugas melalui STDIN atau sebagai argumen .
- Setiap tugas harus direpresentasikan sebagai string dari
start->end
manastart
danend
yang Integer . Tugas dipisahkan oleh spasi atau koma. Atau , Anda bisa mendapatkannya sebagai Tuple of Integer, atau sebagai Array / Collection of 2 Integer. (Misalnya, dalam JavaScript Anda dapat memperolehnya[start,end]
- ini diizinkan). - Sejumlah tugas (argumen) non-negatif harus didukung.
Untuk membuatnya lebih jelas, argumen tunggal pengumpulan tugas tidak diperbolehkan. Anda dapat menguraikan argumen string tunggal, atau mendukung argumen tugas nol atau lebih. Di mana tugas adalah tupel atau kumpulan ukuran 2.- Anda dapat mengasumsikan hanya input yang valid yang akan diberikan. Itu artinya, setiap tugas memiliki durasi positif.
- Nilai pengembalian tidak masalah, kode Anda harus mencetak timeline pada STDOUT.
- Output: per tugas,
start
spasi diikuti(end-start)
tanda hubung dan a\n
. - Tidak perlu dikatakan, jalur output harus dipesan sesuai dengan urutan input (tugas).
- Membuntuti spasi sebelum
\n
diizinkan, jika itu membantu Anda.
Uji kasus
Input:
(empty)
Output:
(empty)
Input:
0->7,5->6,3->6
Output:
-------
-
---
Input:
5->20,5->20,2->10,15->19
Output:
---------------
---------------
--------
----
Kemenangan
- Ini adalah kode-golf sehingga panjang kode paling sedikit (dalam byte) menang.
- Secara tradisional, tie breaker adalah posting sebelumnya.
- "Lubang standar tidak lagi lucu".
-----
EDIT
Seperti banyak dari Anda mengerti bahwa diperbolehkan untuk memiliki argumen pengumpulan tugas tunggal, dan karena tidak ada banyak perbedaan antara itu dan persyaratan vararg asli , sekarang diperbolehkan untuk memiliki argumen pengumpulan tunggal, jika Anda tidak ingin menggunakan opsi varargs, atau jika bahasa Anda tidak mendukung varargs.
arguments
di dalam fungsi, tetapi Anda mungkin tidak berasumsi bahwa itu arguments[0]
adalah array tugas.
To make it clear...
) tidak jelas sama sekali.