Submission #56558341
Source Code Expand
// I AM A MUSLIM
#include "bits/stdc++.h"
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#define fastIO std::ios::sync_with_stdio(0);std::cin.tie(0)
#define ll long long int
#define flush fflush(stdout)
#define bl printf("\n")
#define yn(a, b) printf("%s\n", a >= b ? "Yes":"No")
// #define int ll
using pii = std::pair<int,int>;
const int MOD = 1000000007;
// const int MOD = 998244353;
const int mxN = 100100;
int L, R, C, N;
ll arr[110][110][110], prefixSum[110][110][110];
void pref() {
prefixSum[0][0][0] = arr[0][0][0];
for (int i = 1; i < L; i++)
prefixSum[i][0][0]
= prefixSum[i - 1][0][0] + arr[i][0][0];
for (int i = 1; i < R; i++)
prefixSum[0][i][0]
= prefixSum[0][i - 1][0] + arr[0][i][0];
for (int i = 1; i < C; i++)
prefixSum[0][0][i]
= prefixSum[0][0][i - 1] + arr[0][0][i];
for (int k = 1; k < L; k++) {
for (int i = 1; i < R; i++) {
prefixSum[k][i][0]
= arr[k][i][0] + prefixSum[k - 1][i][0]
+ prefixSum[k][i - 1][0]
- prefixSum[k - 1][i - 1][0];
}
}
for (int i = 1; i < R; i++) {
for (int j = 1; j < C; j++) {
prefixSum[0][i][j]
= arr[0][i][j] + prefixSum[0][i - 1][j]
+ prefixSum[0][i][j - 1]
- prefixSum[0][i - 1][j - 1];
}
}
for (int j = 1; j < C; j++) {
for (int k = 1; k < L; k++) {
prefixSum[k][0][j]
= arr[k][0][j] + prefixSum[k - 1][0][j]
+ prefixSum[k][0][j - 1]
- prefixSum[k - 1][0][j - 1];
}
}
for (int k = 1; k < L; k++) {
for (int i = 1; i < R; i++) {
for (int j = 1; j < C; j++) {
prefixSum[k][i][j]
= arr[k][i][j]
+ prefixSum[k - 1][i][j]
+ prefixSum[k][i - 1][j]
+ prefixSum[k][i][j - 1]
- prefixSum[k - 1][i - 1][j]
- prefixSum[k][i - 1][j - 1]
- prefixSum[k - 1][i][j - 1]
+ prefixSum[k - 1][i - 1][j - 1];
}
}
}
}
ll que(int D, int E, int F, int X, int Y, int Z) {
ll sum = prefixSum[X][Y][Z];
if (D > 0) {
sum -= prefixSum[D - 1][Y][Z];
}
if (E > 0) {
sum -= prefixSum[X][E - 1][Z];
}
if (F > 0) {
sum -= prefixSum[X][Y][F - 1];
}
if (D > 0 && E > 0) {
sum += prefixSum[D - 1][E - 1][Z];
}
if (E > 0 && F > 0) {
sum += prefixSum[X][E - 1][F - 1];
}
if (F > 0 && D > 0) {
sum += prefixSum[D - 1][Y][F - 1];
}
if (D > 0 && E > 0 && F > 0) {
sum -= prefixSum[D - 1][E - 1][F - 1];
}
return sum;
}
signed main() {
// fastIO;
int testCases=1;
// scanf("%d",&testCases);
// std::cin >> testCases;
for (int TC = 1; TC <= testCases; TC++) {
scanf("%d",&N);
L = R = C = N;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
for (int k = 0; k < N; k++) scanf("%lld",&arr[i][j][k]);
}
}
pref();
// for (int i = 0; i < N; i++) {
// for (int j = 0; j < N; j++) {
// for (int k = 0; k < N; k++) printf("%lld ", prefixSum[i][j][k]); bl;
// } bl; bl;
// }
int q;
scanf("%d",&q);
for (int qq = 0; qq < q; qq++) {
std::vector<int> Q(6);
for (auto &v : Q) scanf("%d",&v);
printf("%lld\n", que(Q[0]-1, Q[2]-1, Q[4]-1, Q[1]-1, Q[3]-1, Q[5]-1));
// ll sum = 0;
// for (int i = Q[0]-1; i < Q[1]; i++) {
// for (int j = Q[2]-1; j < Q[3]; j++) {
// for (int k = Q[4]-1; k < Q[5]; k++) sum += arr[i][j][k];
// }
// }
// printf("%lld\n", sum);
}
}
return 0;
}
/*
*/
Submission Info
| Submission Time |
|
| Task |
D - Cuboid Sum Query |
| User |
MArhamAA1422 |
| Language |
C++ 20 (Clang 16.0.6) |
| Score |
400 |
| Code Size |
4256 Byte |
| Status |
AC |
| Exec Time |
168 ms |
| Memory |
21892 KiB |
Compile Error
./Main.cpp:5:13: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma GCC optimize("O3,unroll-loops")
^
./Main.cpp:6:13: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
^
./Main.cpp:17:11: warning: unused variable 'MOD' [-Wunused-const-variable]
const int MOD = 1000000007;
^
./Main.cpp:19:11: warning: unused variable 'mxN' [-Wunused-const-variable]
const int mxN = 100100;
^
4 warnings generated.
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
400 / 400 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_00.txt, 00_sample_01.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 02_maximum_00.txt, 02_maximum_01.txt, 02_maximum_02.txt, 02_maximum_03.txt, 02_maximum_04.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
1 ms |
3668 KiB |
| 00_sample_01.txt |
AC |
1 ms |
3876 KiB |
| 01_random_00.txt |
AC |
164 ms |
20240 KiB |
| 01_random_01.txt |
AC |
135 ms |
21424 KiB |
| 01_random_02.txt |
AC |
127 ms |
15876 KiB |
| 01_random_03.txt |
AC |
102 ms |
11248 KiB |
| 01_random_04.txt |
AC |
168 ms |
20584 KiB |
| 01_random_05.txt |
AC |
100 ms |
21892 KiB |
| 01_random_06.txt |
AC |
124 ms |
15252 KiB |
| 01_random_07.txt |
AC |
80 ms |
7928 KiB |
| 01_random_08.txt |
AC |
125 ms |
18004 KiB |
| 01_random_09.txt |
AC |
132 ms |
18748 KiB |
| 01_random_10.txt |
AC |
145 ms |
20004 KiB |
| 01_random_11.txt |
AC |
143 ms |
16920 KiB |
| 01_random_12.txt |
AC |
76 ms |
9676 KiB |
| 01_random_13.txt |
AC |
143 ms |
20284 KiB |
| 01_random_14.txt |
AC |
165 ms |
21368 KiB |
| 02_maximum_00.txt |
AC |
154 ms |
21596 KiB |
| 02_maximum_01.txt |
AC |
156 ms |
21592 KiB |
| 02_maximum_02.txt |
AC |
152 ms |
21892 KiB |
| 02_maximum_03.txt |
AC |
149 ms |
21716 KiB |
| 02_maximum_04.txt |
AC |
149 ms |
21632 KiB |