Низата на Боки
За време на часот немиркото Боки, наместо да слуша, во тетратката запишал долга текстуална низа составена само од мали латинични букви (‘a’ - ‘z’) и знакот прашалник (‘?’) кој понекогаш се појавувал меѓу буквите.
Кога видел наставникот што прави Боки, веднаш му задал програмерска задача: Најди подниза во оваа низа во која секоја буква (‘a’ - ‘z’) ќе се појавува по точно K пати. Притоа, секој од прашалниците мораш да го замениш со некоја од буквите, а може да избереш кој прашалник со која буква ќе го менуваш. Доколку има таква подниза отпечати ја нејзината позиција, а ако нема отпечати -1.
Решете ја задачата на Боки, ако сакате да ги освоите поените на оваа задача.
Забелешка: За дадени 2 елемента од дадена низа, подниза е дел од низата кој ги содржи по редослед сите елементи меѓу тие два елемента (заедно со нив). Позиција на една таква подниза е позицијата на првиот од тие 2 елемента.
Влез
Во првиот ред се запишани два цели броеви разделени со по едно празно место: N (1 ≤ N ≤ 1 000 000), кој ја означува должината на низата, и K (1 ≤ K ≤ 1 000), кој го означува бројот на појавувања на секоја од буквите во бараната подниза.
Во следниот ред е запишана низата, составена од точно N мали латинични букви и прашалници запишани без празни места помеѓу.
Забелешка:
За 20% од поените ќе важи: N ≤ 1000
За дополнителни 20% од поените ќе важи: K = 1
Излез
Во првиот ред отпечатете ја најмалата можна позиција на најдената подниза. Доколку не може да се најде таква подниза, отпечатете -1.
Ограничувања
Временско ограничување: 200 milliseconds
Мемориско ограничување: 64 megabytes
Примери
влез 28 1 ababcdefghijklmnopqrstuvwx?z | излез 3 |
влез 28 1 a?cdefghijklmnopqrstuvwxyza? | излез 1 |
влез 26 1 a?adefghijklmnopqrstuvwxyz | излез -1 |
Објаснување за првиот пример: Постои само една подниза што ја содржи секоја буква точно по еднаш, а тоа е поднизата од третиот до 28-миот елемент. Притоа, прашалникот Боки го заменува со единствената можна опција, буквата y.
Објаснување за вториот пример: Тука имаме 3 опции. Поднизата од првиот до 26-тиот елемент може да ја содржи секоја буква точно по еднаш доколку прашалникот на втората позиција во оригиналната низа го замениме со ‘b’. Исто така, поднизата од вториот до 27-миот елемент може да ја содржи секоја буква точно по еднаш доколку прашалникот на втората позиција во оригиналната низа го замениме со ‘b’. Понатаму, поднизата од 3-тиот до 28-миот елемент може да ја содржи секоја буква точно по еднаш доколку прашалникот на последната позиција во оригиналната низа го замениме со ‘b’. Гледаме, од трите опции, поднизата од првиот до 26-тиот елемент е на најмала позиција (1).