CF717G.Underfail

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You have recently fallen through a hole and, after several hours of unconsciousness, have realized you are in an underground city. On one of your regular, daily walks through the unknown, you have encountered two unusually looking skeletons called Sanz and P’pairus, who decided to accompany you and give you some puzzles for seemingly unknown reasons.

One day, Sanz has created a crossword for you. Not any kind of crossword, but a 1D crossword! You are given mm words and a string of length nn . You are also given an array pp , which designates how much each word is worth — the ii -th word is worth pip_{i} points. Whenever you find one of the mm words in the string, you are given the corresponding number of points. Each position in the crossword can be used at most xx times. A certain word can be counted at different places, but you cannot count the same appearance of a word multiple times. If a word is a substring of another word, you can count them both (presuming you haven’t used the positions more than xx times).

In order to solve the puzzle, you need to tell Sanz what’s the maximum achievable number of points in the crossword. There is no need to cover all postions, just get the maximal score! Crossword and words contain only lowercase English letters.

输入格式

The first line of the input contains a single integer nn ( 1<=n<=5001<=n<=500 ) — the length of the crossword. The second line contains the crossword string. The third line contains a single integer mm ( 1<=m<=1001<=m<=100 ) — the number of given words, and next mm lines contain description of words: each line will have a string representing a non-empty word (its length doesn't exceed the length of the crossword) and integer pip_{i} ( 0<=pi<=1000<=p_{i}<=100 ). Last line of the input will contain xx ( 1<=x<=1001<=x<=100 ) — maximum number of times a position in crossword can be used.

输出格式

Output single integer — maximum number of points you can get.

输入输出样例

  • 输入#1

    6
    abacba
    2
    aba 6
    ba 3
    3
    

    输出#1

    12
    

说明/提示

For example, with the string "abacba", words "aba" (6 points) and "ba" (3 points), and x=3x=3 , you can get at most 1212 points - the word "aba" appears once ("abacba"), while "ba" appears two times ("abacba"). Note that for x=1x=1 , you could get at most 99 points, since you wouldn’t be able to count both "aba" and the first appearance of "ba".

首页