zoukankan      html  css  js  c++  java
  • CodeForces

    You are given a string tt consisting of nn lowercase Latin letters and an integer number kk .

    Let's define a substring of some string ss with indices from ll to rr as s[lr]s[l…r] .

    Your task is to construct such string ss of minimum possible length that there are exactly kk positions ii such that s[ii+n1]=ts[i…i+n−1]=t . In other words, your task is to construct such string ss of minimum possible length that there are exactly kk substrings of ss equal to tt .

    It is guaranteed that the answer is always unique.

    Input

    The first line of the input contains two integers nn and kk (1n,k501≤n,k≤50 ) — the length of the string tt and the number of substrings.

    The second line of the input contains the string tt consisting of exactly nn lowercase Latin letters.

    Output

    Print such string ss of minimum possible length that there are exactly kk substrings of ss equal to tt .

    It is guaranteed that the answer is always unique.

    Examples

    Input
    3 4
    aba
    Output
    ababababa
    Input
    3 2
    cat
    Output
    catcat
    #include <cstdio>
    #include <iostream>
    #include <cmath>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    using namespace std;
    int main()
    {
        int n, k, miao;
        string s, t;
        while(~scanf("%d%d", &n, &k) && (n+k))
        {
            cin >> s;
            miao = 0;
            for(int i = 1; i<n; i++)
            {
                t = s.substr(i);
                if(s.find(t) == 0)
                {
                    miao = i;
                    break;
                }
            }
            if(miao)
            {
                string root = s.substr(0, miao);
                for(int i = 0; i<k; i++)
                {
                    cout << root;
                }
                cout << t << '
    ';
            }
            else
            {
                for(int i = 0; i<k; i++)
                {
                    cout << s;
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    学习增删查改
    学习MVC
    Milkyway 用的不规则LEF
    innovus 自学之 摆放数模接口port
    innovus 自学之 一些小命令
    innovus 自学小技巧之 gui小配置
    innovus 自学小技巧之floorplan
    第二周 第四节pyc是什么
    第二周 第三节初识模块2
    第二周第二节模块初识
  • 原文地址:https://www.cnblogs.com/RootVount/p/10467406.html
Copyright © 2011-2022 走看看