Tantangan ini didasarkan pada teka-teki yang saya baca di beberapa buku beberapa waktu lalu, yang saya temukan lagi di sini . Ini adalah tentang peluru yang ditembakkan dari senapan sekali per detik dengan kecepatan bervariasi yang bergerak dalam garis lurus selamanya. Ketika satu peluru mengenai yang lain, keduanya hancur sepenuhnya. (Jangan ragu untuk mengganti semua instance "peluru" dengan "rudal".)
Tugas
Diberi daftar kecepatan peluru dalam urutan menembak, tentukan apakah semua peluru dihancurkan.
Aturan
- Input adalah daftar bilangan bulat non-negatif, dipisahkan oleh pembatas apa pun dan dengan satu karakter opsional sebelum dan sesudah. Ini adalah input yang valid:
1 2 3 4 5 6
dan[1,2,3,4,5,6]
. Pemrogram membuat pilihan. - Keluarkan nilai kebenaran jika setidaknya satu peluru bertahan selamanya dan nilai palsu sebaliknya.
- Kecepatan peluru diberikan dalam satuan per detik.
- Peluru bergerak secara simultan dan terus menerus.
- Peluru dapat bertabrakan pada offset fraksional.
- Beberapa peluru yang secara bersamaan mencapai posisi yang sama persis, apakah pada offset integral atau fraksional dari asal, semua saling bertabrakan.
Contohnya
Dalam diagram ini, G
perlihatkan pistol, >
peluru, dan *
saat peluru bertabrakan dan meledak.
Sejujurnya
Memasukkan: 0
0123456789
Time 0 G>
1 G>
2 G>
...
Keluaran: 1
Memasukkan: 0 0 0
0123456789
Time 0 G>
1 G*
2 G>
3 G>
4 G>
...
Keluaran: 1
Memasukkan: 1
0123456789
Time 0 G>
1 G >
2 G >
3 G >
...
Keluaran: 1
Memasukkan: 2 1
0123456789
Time 0 G>
1 G> >
2 G > >
3 G > >
4 G > >
...
Keluaran: 1
Memasukkan: 2 3 1
0123456789
Time 0 G>
1 G> >
2 G> >>
3 G > *
4 G >
5 G >
...
Keluaran: 1
Palsu
Memasukkan: 1 2 3 4 5 6
Unit 1111111111
01234567890123456789
Time 0 G>
1 G>>
2 G> *
3 G> >
4 G> > >
5 G> > >>
6 G > > *
7 G > >
8 G > >
9 G >>
10 G *
111111111122222222223
0123456789012345678901234567890
Keluaran: 0
Memasukkan: 1 0 0 3
Unit
0123456789
Time 0 G>
1 G>>
2 G* >
3 G> >
4 G >>
5 G *
(Tabrakan kedua adalah pada waktu 4,5)
Output:0
Memasukkan: 2 1 2 3 6 5
Unit 1111111111
01234567890123456789
Time 0 G>
1 G> >
2 G>> >
3 G> * >
4 G> > >
5 G> * >
6 G > >
7 G > >
8 G >>
9 G *
1111111111
01234567890123456789
Keluaran: 0
Memasukkan: 2 3 6
Unit
0123456789
Time 0 G>
1 G> >
2 G> >>
3 G *
Keluaran: 0
1<enter>2<enter>3...
?