UVA10755的代码,死活过不去,求助

学术版

废料堆可以为空(即负数时应输出0),同时格式应该是: ans \n ans \n …… ans \n (最后一组只用输出一个回车)
by CreeperK @ 2018-04-10 13:12:47


我搞错了,应该是废料堆不为空,即对于下面这组数据: 1 1 1 -5 应输出-5而不是0.
by CreeperK @ 2018-04-10 13:16:47


改了还是没过 ```cpp #define maxn 20+5 #include<iostream> #include<algorithm> #include<cstring> using namespace std; long long map[maxn][maxn][maxn],sum[maxn][maxn][maxn]; int main() { int t; cin >> t; for (int kase=0;kase<t;++kase) { int a,b,c; memset(sum,0,sizeof(sum)); cin >> a >> b >> c; for (int i=1;i<=a;++i) for (int j=1;j<=b;++j) for (int k=1;k<=c;++k) cin >> map[i][j][k]; for (int i=1;i<=a;++i) for (int j=1;j<=b;++j) for (int k=1;k<=c;++k) sum[i][j][k]=sum[i][j][k-1]+sum[i][j-1][k]-sum[i][j-1][k-1]+map[i][j][k]; long long ans=-2333333333; for (int x1=1;x1<=b;++x1) for (int y1=1;y1<=c;++y1) for (int x2=x1;x2<=b;++x2) for (int y2=y1;y2<=c;++y2) { long long tmp=-2333333333,s=0; for (int i=1;i<=a;++i) { long long num=sum[i][x2][y2]-sum[i][x2][y1-1]-sum[i][x1-1][y2]+sum[i][x1-1][y1-1]; s+=num; if (s<0) s=0; tmp=max(s,tmp); } ans=max(ans,tmp); } if (kase) cout << endl; cout << ans << endl; } return 0; } ```
by 曦行夜落 @ 2018-04-10 17:28:17


|