题目描述
众所周知,老师的 OJ 最近经常被攻击,于是他设计了一个超级密码
我们知道,密码越长,破解难度越高,而位数每增加一位对于破解难度的提升都是幂级的 所以只要密码够长,就不可能被人破解
现在老师准备登录服务器,但是他发现,由于密码太长了,他自己也输不对了
老师设置的密码为一个仅由小写字母组成的字符串
现在他输入的密码为一个仅由小写字母组成的字符串
老师想知道,他有几位是输入正确的?(即求有多少个 满足 )
输入格式
由于老师设置的密码长度过长,为了方便输入,请根据以下方式读取字符串 和 输入第一行包含两个正整数 和 输入第二行包含一个仅由小写字母组成的字符串 ,由 重复拼接 次得到
输入第二行包含一个仅由小写字母组成的字符串 ,由 重复拼接 次得到
输出格式
输出老师输入正确的位数
样例输入
30 20
abbb
bbaabb
样例输出
70
n,m<=10的九次方
我只对了5个点,其余5个点都Runtime Error 0Segmentation fault
求调求调!或求大佬正解代码!
#include <bits/stdc++.h>
using namespace std;
char a[123123];
char b[123123];
long long ans=0;
long long jls,jls1;
long long n,m;
int main()
{
cin>>n>>m;
string s,s1;
cin>>s;
cin>>s1;
jls=s.length();
long long ha=0,ha1=0;
jls1=s1.length();
for(long long i=0; i<n*jls; i++)
{
if(ha==jls)
{
ha=0;
}
a[i]=s[ha];
ha++;
}
for(long long i=0; i<m*jls1; i++)
{
if(ha1==jls1)
{
ha1=0;
}
b[i]=s1[ha1];
ha1++;
}
for(long long i=0; i<n*jls; i++)
{
if(a[i]==b[i])
{
ans++;
}
}
cout<<ans;
return 0;
}