Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: angpangSK
Problemset: ปริมาตรน้ำท่วม
Language: c
Time: 0.003 second
Submitted On: 2025-09-24 21:27:12
#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 sum[4] = {0};
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) {
positivenum += sum[0];
negativenum += sum[1];
evennum += sum[2];
oddnum += sum[3];
}
else {
for (int j = 0; j < 4; j++) {
sum[j] = 0;
}
int currentnum = thearray[xcoordinates[i] - 1][ycoordinates[i] - 1];
if (currentnum > 0) {
sum[0]++;
}
else if(currentnum < 0) {
sum[1]++;
}
if (currentnum % 2 == 0) {
sum[2]++;
}
else {
sum[3]++;
}
positivenum += sum[0];
negativenum += sum[1];
evennum += sum[2];
oddnum += sum[3];
}
}
printf("%d %d %d %d ", positivenum, negativenum, evennum, oddnum);
}