Hide

Problem D
Unika Ord

Du ska skriva ett program som kan läsa in en följd av tecken, och som skriver ut startpositionen på den först förekommande unika delföljden av längd $N$. Indata består av en följd av alfanumeriska tecken (A-Z, a-z, 0-9), som kan vara högst $10\, 000\, 000$ tecken lång. $N$ kan vara mellan $0$ och $1000$. Om inga unika delföljder av längd $N$ finns skall programmet skriva ut $-1$. Med “unik delföljd” menas en följd av tecken som bara förekommer en enda gång.

Positionerna numreras från $0$, så att om t.ex $N=2$, och teckenföljden är “ABCDABC”, så är den första unika delföljden “CD”, och den börjar på position $2$.

Input

Indata består av ett heltal ($N$) som anger längden på den eftersökta delföljden. Därefter följer en teckenföljd bestående av mellan $1$ och $10\, 000\, 000$ tecken.

Output

Utdata ska bestå av ett enda heltal som anger startpositionen på den första unika delföljden av efterfrågad längd, eller $-1$ om inga unika delföljder av efterfrågad längd finns.

Sample Input 1 Sample Output 1
2
ABCDABC
2
Sample Input 2 Sample Output 2
3
ABCDABC
1
Sample Input 3 Sample Output 3
10
ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD
-1

Please log in to submit a solution to this problem

Log in