Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: 8ii8jj

Problemset: สำรวจอาเรย์ 2

Language: c

Time: 0.006 second

Submitted On: 2025-10-09 22:43:39

#include <stdio.h>

int main() {
    int n, m, i, j, k, l;
    scanf("%d %d", &n, &m);
    int a[n][m];
    int b = 0, c = 0, d = 0, e = 0;

    // read matrix
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            scanf("%d", &a[i][j]);
        }
    }

    scanf("%d", &l); // number of queries
    int x[l], y[l];
    int q = 1;

    for (k = 0; k < l; k++) {
        scanf("%d %d", &x[k], &y[k]);
        x[k]--;
        y[k]--;

        if (x[k] < 0 || x[k] >= n || y[k] < 0 || y[k] >= m) {
            if (k - q >= 0) {  // prevent invalid index
                if (a[x[k - q]][y[k - q]] % 2 == 0)
                    d++;  // even
                else
                    e++;  // odd

                if (a[x[k - q]][y[k - q]] > 0)
                    b++;  // positive
                else if (a[x[k - q]][y[k - q]] < 0)
                    c++;  // negative
            }
            q++;
        } else {
            q = 1;
            if (a[x[k]][y[k]] % 2 == 0)
                d++;  // even
            else
                e++;  // odd

            if (a[x[k]][y[k]] > 0)
                b++;  // positive
            else if (a[x[k]][y[k]] < 0)
                c++;  // negative
        }
    }

    printf("%d %d %d %d", b, c, d, e);
}