Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
上个月关闭。
该程序运行良好,但是当输入较大的数字时出现错误。
此问题的链接为https://www.hackerearth.com/practice/data-structures/arrays/multi-dimensional/practice-problems/algorithm/monk-and-operations/description/
输入示例(最坏情况)
2 2
227790993 -762740567
57519048 -247119797
266086776 904261341 -872001509 212276239
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
上个月关闭。
该程序运行良好,但是当输入较大的数字时出现错误。
此问题的链接为https://www.hackerearth.com/practice/data-structures/arrays/multi-dimensional/practice-problems/algorithm/monk-and-operations/description/
#include<stdio.h>
#include<stdlib.h>
#define MAX(a,b) (((a)>(b))?(a):(b))
int main(){
int m,n,i,j,matrsum,matcsum;
scanf("%d %d",&m,&n);
int a[m][n],v1,v2,v3,v4;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
scanf("%d %d %d %d",&v1,&v2,&v3,&v4);
for(i=0;i<m;i++){
int rsum=0,risum=0,rusum=0;
for(j=0;j<n;j++){
rsum=rsum+abs(a[i][j]);
risum+=abs(a[i][j]+v1);
rusum+=abs(v2);
}
matrsum+=MAX(rsum,MAX(risum,rusum));
}
for(i=0;i<n;i++){
int csum=0,cisum=0,cusum=0;
for(j=0;j<m;j++){
csum=csum+abs(a[j][i]);
cisum+=abs(a[j][i]+v3);
cusum+=abs(v4);
}
matcsum+=MAX(csum,MAX(cisum,cusum));
}
printf("%d ",MAX(matrsum,matcsum));
}
输入示例(最坏情况)
2 2
227790993 -762740567
57519048 -247119797
266086776 904261341 -872001509 212276239
最佳答案
如果仅使用带符号整数,则可以使用long int而不是int。
long类型的大小至少为4个字节(32位)。最小值为-2,147,483,647,最大值为至少+2,147,483,647。
您可以在此处查看一篇非常有创意的文章。What is the difference between "long", "long long", "long int", and "long long int" in C++?
关于c - 我如何使此代码即使对于大量输入也能起作用? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59785691/