我正在努力解决问题ARDA1 - 在SPOJ上追捕Gollum
这是链接:http://www.spoj.com/problems/ARDA1/
这是我的代码:
#include <algorithm>
#include <string>
using namespace std;
string map[2010];
string marshes[310];
char str[310];
int main()
{
int N1, N2, M1, M2 = 0;
freopen("INPUT.txt","rt",stdin);
scanf("%d%d", &N1, &N2);
for (int i = 0; i < N1; i++) {
scanf("%s", &str);
marshes[i] = str;
}
scanf("%d%d", &M1, &M2);
for (int i = 0; i < M1; i++) {
scanf("%s", &str);
map[i] = str;
}
bool isFound = false;
for (int i = 0; i <= M1 - N1; i++)
for (int j = 0; j <= M2 - N2; j++) {
if (map[i][j] == marshes[0][0]) {
bool isSame = true;
for (int t = 0; t < N1; t++) {
if (marshes[t] != map[i+t].substr(j, N2)) {
isSame = false;
break;
}
}
if (isSame) {
printf("(%d,%d)\n", i+1, j+1);
isFound = true;
}
}
}
if (!isFound)
printf("NO MATCH FOUND...");
return 0;
}
但是当我提交我的解决方案时,我收到了“运行时错误(SIGSEGV)”。我知道在尝试访问元素时或者内存不足时我们会得到SIGSEGV
我检查了我的代码,但找不到任何错误,它在我的电脑上工作。任何人都可以告诉我这里有什么问题吗?