COCI-11 (2011) - Γύρος #5 - 6 (Poplocavanje)

View as PDF

Submit solution

Points: 45 (partial)
Time limit: 4.0s
Memory limit: 512M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Python
Poplocavanje

Η οδός ASCII του Mirko αποτελείται από N πεζά γράμματα του αγγλικού αλφαβήτου. Η κυβέρνηση της πόλης αντικαθιστά περιστασιακά τα πλακάκια στο δρόμο. Ωστόσο, τα πλακίδια γραμμάτων έχουν μεγάλη ζήτηση, επομένως η κυβέρνηση έχει διαθέσιμα μόνο M διαφορετικά σχέδια πλακιδίων.
Το i-οστό μοτίβο του πλακιδίου αποτελείται από L_i γράμματα. Ένα πλακίδιο δεν μπορεί να περιστραφεί ή να σπάσει σε κομμάτια και μπορεί να τοποθετηθεί μόνο έτσι ώστε τα γράμματα του πλακιδίου να συμπίπτουν με τη συνεχόμενη ακολουθία γραμμάτων στο δρόμο.
Τα πλακάκια μπορεί να επικαλύπτονται και μπορούμε να χρησιμοποιήσουμε πολλά πλακίδια του ίδιου σχεδίου.
Υπολογίστε τον αριθμό των κελιών που δεν μπορούν να καλυφθούν από κανένα πλακίδιο.

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει τον θετικό ακέραιο αριθμό N\;(1 \leq N \leq 300\,000), το μήκος της οδού.
Η δεύτερη γραμμή εισόδου περιέχει N πεζά αγγλικά γράμματα, την ακολουθία γραμμάτων στο δρόμο.
Η τρίτη γραμμή εισόδου περιέχει τον θετικό ακέραιο M\;(1 \leq M \leq 5000), τον αριθμό των μοτίβων πλακιδίων.
Κάθε μία από τις επόμενες M γραμμές περιέχει μια περιγραφή ενός σχεδίου πλακιδίων με μήκος L_i (1 \leq L_i \leq 5000). Οι περιγραφές μοτίβων πλακιδίων αποτελούνται από πεζά αγγλικά γράμματα.

Έξοδος

Η πρώτη και μοναδική γραμμή εξόδου πρέπει να περιέχει τον απαιτούμενο αριθμό κελιών με δυνατότητα λήψεως.

Παραδείγματα

input

6
abcbab
2
cb
cbab

output

2

input

4
abab
2
bac
baba

output

4

input

6
abcabc
2
abca
cab

output

1

Comments

There are no comments at the moment.