问题描述
这是代码
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("v.in");
ofstream g("v.out");
int v[2000][2000];
int main()
{
int s = 0;
int imax,jmax,smax = 0;
int n,m;
int d;
f >> m >> n;
for(int i = 1; i <= m; i++)
{
for(int j = 1; j<=n; j++)
{
f >> v[i][j];
}
}
int i = 1,j = 1;
for(i = 1; i + 2 <= n; i++)
{
for(d = 1; d < m && i + d * 2 <= n; d++)
{
int i2 = i + d * 2;
s = 0;
int ii1 = i;
int ii2 = i2;
for(j = 1; j <= d + 1; j++)
{
s = s + v[j][ii1++];
}
for(j=1;j<d+1;j++)
{
s = s + v[j][ii2--];
}
if(s > smax)
{
smax = s;
imax = i;
jmax = d + 1;
}
}
}
g << smax << ' ' << imax << ' ' << jmax;
f.close();
g.close();
return 0;
}
程序必须从第一行开始读取V中的矩阵。 每次我得到状态为-1073741510的终止,但我找不到原因。
1 ≤ m,n ≤ 1500
它必须显示最大总和路线,如示例所示,smax以及起始列和最后一行:
v.in
5 10
1 2 1 1 1 1 1 1 1 1
1 2 -1 20 -1 -1 -1 1 -1 2
-3 -3 -4 -5 -6 -7 -8 -9 20 -1
-2 -4 -5 -6 -6 -7 -8 -9 -10 -1
-20 -40 -4 -5 -6 -6 -7 -8 -9 -10
v.out
22 3 2
我是乞讨者,请帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)