Бодолт илгээх | Бүх бодолтууд | Шилдэг бодолтууд | Жагсаалт руу буцах |
APIO14A - Палиндром |
Латин хэлний жижиг үсгүүд бүхий тэмдэгт мөр өгөгдөнө. Тухайн тэмдэгт мөрний дэд тэмдэгт мөрийн уртыг давтагдсан тоогоор нь үржүүлээд гарсан утгыг “давталтын утга” гэж нэрлэе. Палиндром дэд тэмдэгт мөрүүдийн давталтын утгуудын хамгийн их утгыг ол.
Оролт
Зөвхөн Латин хэлний жижиг үсгээс тогтсон, хоосон биш тэмдэгт мөр нэг мөрөнд өгөгдөнө.
Гаралт
Гаралт нь нэг бүхэл тоо байна –палиндром дэд тэмдэгт мөрүүдийн давталтын утгуудын хамгийн их утга.
Доор байгаа жишээний тайлбар
|s| бол s тэмдэгт мөрийн урт
Дэд тэмдэгт мөр s1s2…s|s| бол дурын хоосон биш тэмдэгт мөр sisi+1…sj хувьд 1≤ i ≤ j ≤| s| гэсэн нөхцөл биелнэ. Мөн ямар ч тэмдэгт мөр өөрийнхөө дэд тэмдэгт мөр болно.
Палиндром тэмдэгт мөр гэдэг нь – аль ч талруугаа ижил байдлаар уншигдах мөрийг хэлнэ. Зүүнээс баруун болон баруунаас зүүн талруугаа адилхан уншигдана.
Эхний жишээнд 7 ширхэг палиндром дэд тэмдэгт мөр өгөгдсөн байна. a, b, c, aba, aca, bacab, abacaba
- a - өгөгдсөн тэмдэгт мөрөнд 4 удаа орсон, тиймээс давталтын утга нь 4 x 1 = 4
- b - өгөгдсөн тэмдэгт мөрөнд 2 удаа орсон, тиймээс давталтын утга нь 2 x 1 = 2
- c - өгөгдсөн тэмдэгт мөрөнд 1 удаа орсон, тиймээс давталтын утга нь 1 x 1 = 1
- aba - өгөгдсөн тэмдэгт мөрөнд 2 удаа орсон, тиймээс давталтын утга нь 2 x 3 = 6
- aca - өгөгдсөн тэмдэгт мөрөнд 1 удаа орсон, тиймээс давталтын утга нь 1 x 3 = 3
- bacab - өгөгдсөн тэмдэгт мөрөнд 1 удаа орсон, тиймээс давталтын утга нь 1 x 5 = 5
- abacaba –өгөгдсөн тэмдэгт мөрөнд 1 удаа орсон, тиймээс давталтын утга нь 1 x 7 = 7
Эндээс хамгийн их үзэгдлийн утга бүхий палиндром дэд тэмдэгт мөр нь 7 байна.
Дэд даалгавар
Бичигдсэн програм дараах 4 байдлаар тестлэгдэх болно:
- (8 оноо) 1 ≤ |s| ≤ 100.
- (15 оноо) 1 ≤ |s| ≤ 1000.
- (24 оноо) 1 ≤ |s| ≤ 10000.
- (26 оноо) 1 ≤ |s| ≤ 100000.
- (27 оноо) 1 ≤ |s| ≤ 300000.
Жишээ
Input: abacaba Output: 7
Нэмсэн: | sw40 |
Огноо: | 2014-05-09 |
Хугацааны хязгаарлалт: | 1s |
Эх кодын хэмжээний хязгаарлалт: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Програмчлалын хэлүүд: | Бүгд дараах хэлүүдээс бусад: ADA95 ASM64 BASH BF C++ 4.3.2 C99 CLPS CLOJURE D ERL FSHARP GO ICON ICK JS-RHINO LUA NEM NICE NODEJS OCAML PIKE PRLG-swi SCALA SCM guile SCM qobi SED ST TCL WHITESPACE |