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
AC × 2
AC × 22
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