COCI-18 (2018) - Γύρος #5 - 4 (Parametriziran)

View as PDF

Submit solution

Points: 40 (partial)
Time limit: 3.0s
Memory limit: 64M

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

Μια σειρά χαρακτήρων που αποτελείται από πεζά γράμματα του αγγλικού αλφαβήτου και ερωτηματικά ονομάζεται παραμετροποιημένη λέξη (π.χ. a??cd, bcd, ??). Δύο παραμετροποιημένες λέξεις θεωρούνται παρόμοιες εάν τα σύμβολα ερωτηματικών και στις δύο λέξεις μπορούν να αντικατασταθούν από αυθαίρετα πεζά γράμματα του αγγλικού αλφαβήτου, έτσι ώστε οι συμβολοσειρές που προκύπτουν να είναι ίδιες. Για παράδειγμα, οι παραμετροποιημένες λέξεις a??? και ?b?a είναι παρόμοιες επειδή αντικαθιστώντας τα ερωτηματικά και στις δύο λέξεις είναι δυνατό να ληφθεί η λέξη abba.

Ο Mirko αγόρασε πρόσφατα μια συλλογή από παραμετροποιημένες λέξεις. Μεταξύ των N λέξεων που βρέθηκαν στη συλλογή, ο Mirko ενδιαφέρεται για το πόσα ζεύγη παρόμοιων παραμετροποιημένων λέξεων υπάρχουν. Όλες οι λέξεις της συλλογής έχουν τον ίδιο αριθμό χαρακτήρων, M, και είναι πιθανό μια λέξη να εμφανίζεται πολλές φορές στη συλλογή.

Είσοδος

Η πρώτη γραμμή περιέχει τους ακέραιους αριθμούς N\;(1 \le N \le 50\,000) και M\;(1 \le M \le 6).
Κάθε μία από τις ακόλουθες N γραμμές περιέχει μία παραμετροποιημένη λέξη από τη συλλογή με ακριβώς M χαρακτήρες.

Έξοδος

Εκτυπώστε τον συνολικό αριθμό παρόμοιων ζευγών παραμετροποιημένων λέξεων.

Βαθμολογία

Σε δοκιμαστικές περιπτώσεις συνολικής αξίας 30% των πόντων θα ισχύει M \le 2.
Σε δοκιμαστικές περιπτώσεις συνολικής αξίας επιπλέον 30% των πόντων θα ισχύει M \le 4.

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

input

3 3
??b
c??
c?c

output

2
Επεξήγηση του 1ου παραδείγματος:

Ζεύγη παρόμοιων λέξεων είναι: (??b, c??) και (c??, c?c).


input

4 6
ab??c?
??kll?
a?k??c
?bcd??

output

3

input

5 2
??
b?
c?
?g
cg

output

8

Comments

There are no comments at the moment.