Hãy xem xét một đoạn dây (như trong "sợi dây", chứ không phải trong "một bó các ký tự"), được gấp lại qua lại trên dòng thực. Chúng ta có thể mô tả hình dạng của chuỗi bằng một danh sách các điểm nó đi qua (theo thứ tự). Để đơn giản, chúng tôi sẽ giả sử tất cả các điểm đó là số nguyên.
Lấy một ví dụ [-1, 3, 1, -2, 5, 2, 3, 4]
(lưu ý rằng không phải mỗi mục đều ngụ ý một nếp gấp):
Chuỗi kéo dài theo hướng dọc chỉ dành cho mục đích trực quan hóa. Hãy tưởng tượng tất cả các chuỗi được làm phẳng trên dòng thực.
Bây giờ đây là câu hỏi: số mảnh lớn nhất mà chuỗi này có thể được cắt bằng một vết cắt duy nhất (sẽ phải thẳng đứng trong hình trên). Trong trường hợp này, câu trả lời là 6 với một vết cắt ở giữa 2
và 3
:
Để mập mờ tránh, việc cắt giảm có được thực hiện ở một vị trí không nguyên.
Các thách thức
Đưa ra một danh sách các vị trí số nguyên mà một chuỗi được gấp lại, bạn sẽ xác định số lượng mảnh lớn nhất mà chuỗi có thể được cắt bằng một lần cắt tại một vị trí không nguyên.
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Bạn có thể nhận đầu vào thông qua STDIN, đối số dòng lệnh, dấu nhắc hoặc tham số hàm. Bạn có thể ghi đầu ra vào STDOUT, hiển thị nó trong hộp thoại hoặc trả lại từ hàm.
Bạn có thể cho rằng danh sách này ở bất kỳ định dạng chuỗi hoặc danh sách thuận tiện.
Danh sách sẽ chứa ít nhất 2 và không quá 100 mục. Các mục nhập sẽ là số nguyên, mỗi số trong phạm vi -2 31 ≤ p i <2 31 . Bạn có thể cho rằng không có hai mục liên tiếp giống hệt nhau.
Mã của bạn phải xử lý bất kỳ đầu vào nào như vậy (bao gồm các trường hợp thử nghiệm bên dưới) trong chưa đầy 10 giây trên máy tính để bàn hợp lý.
Các trường hợp thử nghiệm
Tất cả các trường hợp thử nghiệm chỉ đơn giản là đầu vào theo sau là đầu ra.
[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
là khá mơ hồ?