QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#3018. קוד חסר קידומות

Statistics

נתונות $n$ מחרוזות התחלתיות של אותיות לטיניות קטנות, כאשר אף מחרוזת התחלתית אינה קידומת של מחרוזת התחלתית אחרת. כעת בוחרים $k$ מן המחרוזות (כל מחרוזת לכל היותר פעם אחת) ומשרשרים אותן זו לזו. כך ניתן ליצור את מספר המחרוזות המורכבות הבא:

$$ n\times(n-1)\times(n-2)\times\ldots\times(n-k+1) $$

ממיינים בסדר אלפביתי את כל המחרוזות המורכבות שניתן לקבל בתהליך זה. נתונה מחרוזת מורכבת לבדיקה, שמובטח שהיא נמצאת ברשימה זו. מצאו את מיקומה של מחרוזת הבדיקה ברשימה הממוינת של כל המחרוזות המורכבות, מודולו $10^9+7$. המחרוזת המורכבת הראשונה ברשימה נמצאת במקום $1$.

קלט

כל קלט מורכב ממקרה בדיקה יחיד. שימו לב שהתוכנית שלכם עשויה להיות מורצת מספר פעמים על קלטים שונים. כל מקרה בדיקה מתחיל בשורה המכילה שני מספרים שלמים, תחילה $n$ ואחריו $k$ ($1\le k\le n$), כאשר $n$ הוא מספר המחרוזות ההתחלתיות, ו-$k$ הוא מספר המחרוזות ההתחלתיות שבוחרים ליצירת מחרוזות מורכבות. החסמים העליונים על $n$ ועל $k$ נקבעים על ידי המגבלות על המחרוזות שבפסקאות הבאות.

כל אחת מ-$n$ השורות הבאות מכילה מחרוזת המורכבת מאות לטינית קטנה אחת או יותר, מן האותיות a עד z. אלו הן $n$ המחרוזות ההתחלתיות. מובטח שאף אחת מהמחרוזות ההתחלתיות אינה קידומת של מחרוזת התחלתית אחרת.

לבסוף, השורה האחרונה מכילה מחרוזת נוספת, המורכבת רק מאותיות לטיניות קטנות a עד z. זוהי המחרוזת המורכבת לבדיקה, שאת מיקומה ברשימה הממוינת עליכם למצוא. מובטח שמחרוזת הבדיקה היא שרשור של $k$ מחרוזות התחלתיות שונות.

סכום האורכים של כל מחרוזות הקלט, כולל מחרוזת הבדיקה, אינו עולה על $10^6$ אותיות.

פלט

הדפיסו מספר שלם יחיד, המציין את המקום ברשימת המחרוזות המורכבות הממוינת שבו מופיעה מחרוזת הבדיקה. הדפיסו את המספר מודולו $10^9+7$.

דוגמאות

קלט 1

5 3
a
b
c
d
e
cad

פלט 1

26

קלט 2

8 8
font
lewin
darko
deon
vanb
johnb
chuckr
tgr
deonjohnbdarkotgrvanbchuckrfontlewin

פלט 2

12451

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.