CF B. Kolya and Tandem Repeat

CF B. Kolya and Tandem Repeat

大家好,又见面了,我是全栈君。

Kolya got string s for his birthday, the string consists of small English letters. He immediately added k more characters to the right of the string.

Then Borya came and said that the new string contained a tandem repeat of length l as a substring. How large could l be?

See notes for definition of a tandem repeat.

Input

The first line contains s (1 ≤ |s| ≤ 200). This string contains only small English letters. The second line contains number k (1 ≤ k ≤ 200) — the number of the added characters.

Output

Print a single number — the maximum length of the tandem repeat that could have occurred in the new string.

Sample test(s)

Input

aaba

2

Output

6

Input

aaabbbb

2

Output

6

Input

abracadabra

10

Output

20

Note

A tandem repeat of length 2n is string s, where for any position i (1 ≤ i ≤ n) the following condition fulfills: si = si + n.

In the first sample Kolya could obtain a string aabaab, in the second — aaabbbbbb, in the third — abracadabrabracadabra.

暴力枚举全部情况

#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;

char str[205];

int main(){
    int n;
    while(cin>>str>>n){
        int len = strlen(str);
        int L = len+n-(len+n)%2; //保证长度为偶数
        if(len <= n){
           cout<<L<<endl;
           continue;
        }
        int maxlen = 0;
        for(int i=0; i<len; i++){ //枚举起始位置
            for(int j=1; i+j-1<=len-1; j++){ //枚举一半的长度
                int cnt = 0;
            for(int k=i; k<=i+j-1; k++){ //推断
                if(len <= k+j && k+j < len+n) cnt++; //下标
                else if(str[k] == str[k+j]) cnt++;
            }
            if(cnt == j && 2*cnt > maxlen)
                maxlen = 2*cnt;
            }
        }
        cout<<maxlen<<endl;
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115383.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于CPLD与FPGA的对比分析

    关于CPLD与FPGA的对比分析1.PLD/FPGA/CPLDPLD(ProgrammableLogicDevice):可编程逻辑器件,数字集成电路半成品,芯片上按照一定的排列方式集成了大量的门和触发器等基本逻辑元件,使用者按照设计要求运用开发工具将这些片内的元件连接起来,此过程称为编程;FPGA:基于查找表技术,要外挂配置用的EEPROM的PLD产品;由逻辑功能块排列为阵列,并由可编程的内部连线连接…

    2022年6月3日
    33
  • Ubuntu下VLC播放器的字幕乱码问题

    Ubuntu下VLC播放器的字幕乱码问题为了为可能进入的实验室实习做准备,今天重新装上了Ubuntu,今天的安装总的来说还是顺利多了。在播放软件上,这次我选择了VLC,因为感觉mplayer虽然强大,但是始终界面不是十分友好。而VLC也是灰常强大的。但是,在Linux下播放电影时,经常会遇到乱码的问题,下面就谈谈我的经验。造成字幕乱码的原因可能有两个:1.GB字符的解码:因为Linux下中文默认采取utf-

    2022年7月15日
    16
  • 如何写好技术方案

    如何写好技术方案本文将介绍写技术方案的意义,如何评判技术方案的好坏,如何写好技术方案。写技术方案的意义写技术方案根本目的是提高研发效率和质量,具体体现在以下方面:1、提高沟通效率对于整个团队,通过技术方…

    2022年5月21日
    72
  • CLion 2021.4激活码【在线破解激活】

    CLion 2021.4激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    57
  • pycharm怎么缩小代码_word自动编号缩进调整

    pycharm怎么缩小代码_word自动编号缩进调整PyCharm-自动缩进代码(Auto-IndentLines)1.Ctrl+A全选代码。2.Code->Auto-IndentLines自动缩进快捷键Ctrl+Alt+I。Referenceshttps://yongqiang.blog.csdn.net/

    2022年8月29日
    0
  • JVM调优工具总结「建议收藏」

    JVM调优工具总结「建议收藏」一、jps:虚拟机进程状况工具它可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数所在的类)名称以及正在运行的本地虚拟机唯一ID(LVMID);它是使用率最高的一个JDK命令行工具,因为其他的命令行工具都需要输入查询到的ID来确定要监控的是哪一个虚拟机进程。命令格式:jps[options][hostid]选项作用-q只…

    2022年5月6日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号