Gerçek çizgi üzerinde ileri geri katlanmış bir ip (düşünülen ipte olduğu gibi "bir demet karakter" deki gibi) düşünün. Dize şeklini, içinden geçtiği noktaların bir listesini (sırayla) açıklayabiliriz. Basit olması için, tüm bu noktaların tamsayı olduğunu varsayacağız.
Örnek olarak alın [-1, 3, 1, -2, 5, 2, 3, 4]
(her girişin bir katlama yapmadığına dikkat edin):
Dikey yön boyunca uzanan tel sadece görselleştirme amaçlıdır. Tüm gerçek çizgiye düzleştirilmiş dize düşünün.
Şimdi soru şu: bu dizginin tek bir kesimle kesilebilecek en fazla parça sayısı nedir (yukarıdaki resimde dikey olması gerekir). Bu durumda, cevap 6 arasında 2
ve arasında herhangi bir yerde bir kesiklidir 3
:
Önlemek belirsizlikler için, kesme sahip bir tam sayı olmayan konumunda gerçekleştirilmelidir.
Meydan okuma
Bir tamsayı konumlarının bir listesi göz önüne alındığında, bir dize, tamsayı olmayan bir konumda tek bir kesimle kesilebilecek en fazla parça sayısını belirlersiniz.
Tam bir program veya bir fonksiyon yazabilirsiniz. STDIN, komut satırı argümanı, prompt veya function parametresi ile giriş yapabilirsiniz. Çıktıları STDOUT'a yazabilir, bir iletişim kutusunda görüntüleyebilir veya işlevden geri döndürebilirsiniz.
Listenin herhangi bir uygun liste veya dize biçiminde olduğunu varsayabilirsiniz.
Listede en az 2 ve en fazla 100 giriş bulunacaktır . Girişler, her biri -2 31 ≤ p i <2 31 aralığında tamsayılar olacaktır . İki ardışık girişin aynı olmadığını varsayabilirsiniz.
Kodunuz makul bir masaüstü PC'de böyle bir girişi (aşağıdaki test durumları dahil) 10 saniyeden kısa sürede işlemelidir.
Test Kılıfları
Tüm test durumları basitçe girdi ve ardından çıktı olarak girilir.
[0, 1]
2
[2147483647, -2147483648]
2
[0, 1, -1]
3
[1, 0, -1]
2
[-1, 3, 1, -2, 5, 2, 3, 4]
6
[-1122432493, -1297520062, 1893305528, 1165360246, -1888929223, 385040723, -80352673, 1372936505, 2115121074, -1856246962, 1501350808, -183583125, 2134014610, 720827868, -1915801069, -829434432, 444418495, -207928085, -764106377, -180766255, 429579526, -1887092002, -1139248992, -1967220622, -541417291, -1617463896, 517511661, -1781260846, -804604982, 834431625, 1800360467, 603678316, 557395424, -763031007, -1336769888, -1871888929, 1594598244, 1789292665, 962604079, -1185224024, 199953143, -1078097556, 1286821852, -1441858782, -1050367058, 956106641, -1792710927, -417329507, 1298074488, -2081642949, -1142130252, 2069006433, -889029611, 2083629927, 1621142867, -1340561463, 676558478, 78265900, -1317128172, 1763225513, 1783160195, 483383997, -1548533202, 2122113423, -1197641704, 319428736, -116274800, -888049925, -798148170, 1768740405, 473572890, -1931167061, -298056529, 1602950715, -412370479, -2044658831, -1165885212, -865307089, -969908936, 203868919, 278855174, -729662598, -1950547957, 679003141, 1423171080, 1870799802, 1978532600, 107162612, -1482878754, -1512232885, 1595639326, 1848766908, -321446009, -1491438272, 1619109855, 351277170, 1034981600, 421097157, 1072577364, -538901064]
53
[-2142140080, -2066313811, -2015945568, -2013211927, -1988504811, -1884073403, -1860777718, -1852780618, -1829202121, -1754543670, -1589422902, -1557970039, -1507704627, -1410033893, -1313864752, -1191655050, -1183729403, -1155076106, -1150685547, -1148162179, -1143013543, -1012615847, -914543424, -898063429, -831941836, -808337369, -807593292, -775755312, -682786953, -679343381, -657346098, -616936747, -545017823, -522339238, -501194053, -473081322, -376141541, -350526016, -344380659, -341195356, -303406389, -285611307, -282860017, -156809093, -127312384, -24161190, -420036, 50190256, 74000721, 84358785, 102958758, 124538981, 131053395, 280688418, 281444103, 303002802, 309255004, 360083648, 400920491, 429956579, 478710051, 500159683, 518335017, 559645553, 560041153, 638459051, 640161676, 643850364, 671996492, 733068514, 743285502, 1027514169, 1142193844, 1145750868, 1187862077, 1219366484, 1347996225, 1357239296, 1384342636, 1387532909, 1408330157, 1490584236, 1496234950, 1515355210, 1567464831, 1790076258, 1829519996, 1889752281, 1903484827, 1904323014, 1912488777, 1939200260, 2061174784, 2074677533, 2080731335, 2111876929, 2115658011, 2118089950, 2127342676, 2145430585]
2
a reasonable desktop PC
Belirsiz değil mi?