Problem
Bir sayı dizisinin yığın kullanılarak sıralanıp sıralanamayacağını belirlemek için gereklidir.
Bir tren 1. hattan çıkmaz sokağa geldi (resme bakın). Bir veya birkaç ilk arabayı aynı anda trenden çıkarıp çıkmaz sokağa getirmenize izin verilir (dilerseniz tüm treni bir kerede çıkmaz sokağa bile getirebilirsiniz). Bundan sonra, vagonlardan bazılarını 2. parkurun kenarına götürün. Ardından, çıkmaz sokağa birkaç vagon daha getirebilir ve vagonların bir kısmını tekrar 2. parkurun kenarına nakledebilirsiniz. 1. hattan çıkmaz sokağa yalnızca bir kez gidilir ve ardından 2. hattaki çıkmaz sokaktan bir kez çıkılır. 2. hattan çıkmaz sokağa girmek veya 1. hattaki çıkmaz sokaktan çıkmak yasaktır. Çıkmaz sokağa girmeden 1. yoldan 2. yola geçemezsiniz.
Tren vagonlarının başlangıçta hangi sırayla gittiği bilinmektedir. Belirtilen işlemler kullanılarak tren vagonlarının sırayla gitmesi gerekir (önce birinci, sonra ikinci, vb., çıkmaz sokaktan uzağa 2. hat boyunca giden trenin başından sayılarak). Yapılıp yapılamayacağını belirlemek için bir program yazın.
Giriş
N
sayısını girin — trendeki vagon sayısı (\(1<=N<=2000\)). Ardından, 1. hatta giden trenin başından çıkmaz sokağa doğru sıralanan araba numaraları. Arabalar, 1
ile N
arasında, her biri tam olarak bir kez geçen doğal sayılarla numaralandırılmıştır.
Çıktı
Tren çıkmaz sokaktan 2. hatta geçtiğinde vagonları trenin başından başlayarak 1
'den N
'e kadar sırayla hareket ettirmek mümkün müdür? Mümkünse EVET
mesajını görüntüleyin. Mümkün değilse HAYIR
yazdırın.
Örnekler
# |
Girdi |
Çıktı |
Not |
şey>
1 |
3
3 2 1
| EVET |
Bütün treni bir çıkmaz sokağa sokmamız ve ardından tamamen 2. hatta götürmemiz gerekiyor |
2 |
4
4 1 3 2
|
EVET
|
Öncelikle iki vagonu çıkmaz sokağa getirmeniz gerekiyor, bunlardan biri çıkmazda kalacak ve ikincisi — 2. yola çıkın, ardından çıkmaz sokağa iki araba daha getirin ve çıkmazda duran 3 arabayı 2. yola çıkarın |
3 |
3
2 3 1
| HAYIR |
|