Submission

Status:

xxxxxxxxxx

Subtask/Task Score:

0/100

Score: 0

User: theem1502

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

Language: c

Time: 0.003 second

Submitted On: 2025-09-20 15:01:59

#include <stdio.h>
#include <stdlib.h>

int main() {
    int row, collumn;
    scanf("%d %d", &row, &collumn);

    int **thearray = malloc(row * sizeof(int));
    for (int i = 0; i < row; i++) {
        thearray[i] = malloc(collumn * sizeof(int));
    }

    for (int i = 0; i < row; i++) {
        for (int j = 0; j < collumn; j++) {
            scanf("%d", &thearray[i][j]);
        }
    }

    int num;
    scanf("%d", &num);
    int *xcoordinates = malloc(num * sizeof(int));
    int * ycoordinates = malloc(num * sizeof(int));

    for (int i = 0; i < num; i++) {
        scanf("%d %d", &xcoordinates[i], &ycoordinates[i]);
    }

    int oddnum = 0, evennum = 0, positivenum = 0, negativenum = 0;
    int previousxcoordinates = 0, previousycoordinates = 0;
    for (int i = 0; i < num; i++) {

        if (xcoordinates[i] <= 0 || ycoordinates[i] <= 0 || ycoordinates[i] > collumn || xcoordinates[i] > row) {
            int currentnum = thearray[previousxcoordinates - 1][previousycoordinates - 1];

        if (currentnum > 0) {
            positivenum++;
        }
        else if(currentnum < 0) {
            negativenum++;
        }

        if (currentnum % 2 == 0) {
            evennum++;
        }
        else {
            oddnum++;
        }
            continue;
        }


        else {

        int currentnum = thearray[xcoordinates[i] - 1][ycoordinates[i] - 1];

        if (currentnum > 0) {
            positivenum++;
        }
        else if(currentnum < 0) {
            negativenum++;
        }

        if (currentnum % 2 == 0) {
            evennum++;
        }
        else {
            oddnum++;
        }
        previousxcoordinates = xcoordinates[i];
        previousycoordinates = ycoordinates[i];
    }
    }


    printf("%d %d %d %d", positivenum, negativenum, evennum, oddnum);
}