Бидик
Бидик фатил да учи алгоритми. На курсот кој го посетува, неговата наставничка го дала следниот проблем:
Имате добиено текстуална низа (стринг) составена од N мали латинични букви (‘a’-‘z’). Определете дали овој стринг може да се претвори во палиндром (да се чита исто од напред и од назад), ако единствената операција која што можете да ја правите е замена на соседни букви од стрингот.
Доколку е можно да се реши овој проблем, потребно е да се отпечати колку најмалку замени се потребни за претворање на стрингот во палиндром. Во спротивно, потребно е да се отпечати “GRESHKA”.
Влез
Во првиот ред е запишан еден цел број N (1 <= N <= 200000), кој ја означува должината на стрингот. Во следниот ред е запишан стрингот, составен од точно N мали латинични букви.
Забелешка: Во тест случаи кои вредат најмалку 30% од поените, стрингот ќе биде составен само од две букви, и должината N ќе биде помала од 30.
Излез
Отпечатете го бараниот најмал број на замени; или “GRESHKA” доколку не е возможно стрингот да се претвори во палиндром. Дозволена е замена само на соседни букви во стрингот.
Ограничувања
Временско ограничување: 1 second
Мемориско ограничување: 64 megabytes
Примери
влез 5 caaxc | излез 1 |
влез 7 aaycyzz | излез 8 |
влез 6 zdravo | излез GRESHKA |
Објаснување за првиот пример: Овој стринг може да се претвори во палиндром со замена на третата со четвртата буква (caaxc -> caxac).
Објаснување за вториот пример: aaycyzz - ayacyzz - aycayzz - aycyazz - aycyzaz - ayczyaz - ayzcyaz - ayzcyza - ayzczya