Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: theem1502
Problemset: บริษัททำความสะอาด
Language: c
Time: 0.002 second
Submitted On: 2025-09-28 14:57:38
#include <stdio.h>
#include <stdlib.h>
int checkifcharisnum(char thechar) {
if (thechar <= '9' && thechar >='0') {
return 1;
}
else {
return 0;
}
}
int main() {
int num;
scanf("%d", &num);
int **thearray = malloc(num * sizeof(int*));
for (int i = 0; i < num;i++) {
thearray[i] = malloc(num * sizeof(int));
}
for (int i = 0; i < num; i++) {
for (int j = 0; j < num; j++) {
thearray[i][j] = 0;
}
}
char *tempstring = malloc((2 + 2 * num + num - 1 + num + num * num + 1) * sizeof(char));
scanf("%s", tempstring);
int count =0;
int currentrow = 0;
int currentcollumn = 0;
for (int i = 0; i < 2 + 2 * num + num - 1 + num + num * num; i++) {
int currentnum = 0;
int currentchar = tempstring[i];
if (currentchar == '1' && tempstring[i+1] == '0' && tempstring[i+2] == '0') {
currentrow = count / num;
currentcollumn = count % num;
thearray[currentrow][currentcollumn] = 100;
count++;
i += 2;
continue;
}
else if(checkifcharisnum(currentchar) == 1) {
if (checkifcharisnum(tempstring[i+1]) == 1) {
currentnum +=(currentchar - '0') * 10;
currentnum+= (tempstring[i+1] - '0');
i++;
}
else {
currentnum = currentchar- '0';
}
currentrow = count / num;
currentcollumn = count % num;
thearray[currentrow][currentcollumn] = currentnum;
count++;
}
}
int bait = 0;
int dx[8] = {-1,0,0,1};
int dy[8] = {0, 1, -1, 0};
int mainsum = 0;
if (num == 1) {
printf("%d", thearray[0][0] * 4 + 2);
return 0;
}
/*
for (int i = 0; i < num; i++) {
for (int j = 0; j < num; j++) {
int currentbuilding = thearray[i][j];
if (currentbuilding == 0) {
mainsum += 1;
continue;
}
int buildingsum = 2;
if (i == 0 || j ==0 || i == num-1 || j == num - 1) {
if (i == 0) {
if (j == 0){
int currentsurrounding = thearray[i][j + 1];
if (currentsurrounding >= currentbuilding) {
}
else {
buildingsum += currentbuilding - currentsurrounding;
}
int anothersurround = thearray[i+1][j];
if (anothersurround >= currentbuilding) {
}
else {
buildingsum += currentbuilding - anothersurround;
bait = 1;
}
buildingsum += currentbuilding * 2;
}
else if (j == num-1) {
int currentsurrounding = thearray[i][j-1];
if (currentsurrounding >= currentbuilding) {
bait = 1;
}
else {
buildingsum += currentbuilding - currentsurrounding;
}
int anothersurround = thearray[i+1][j];
if (anothersurround >= currentbuilding) {
bait = 0;
}
else {
buildingsum += currentbuilding - anothersurround;
}
buildingsum += currentbuilding * 2;
}
else {
for (int k = 1; k < 4; k++) {
int currentsurrounding = thearray[i + dx[k]][j + dy[k]];
if (currentsurrounding >= currentbuilding) {
bait = 0;
}
else {
buildingsum += currentbuilding - currentsurrounding;
}
}
buildingsum += currentbuilding;
}
}
else if (i == num-1) {
if (j == 0){
int currentsurrounding = thearray[i][j + 1];
if (currentsurrounding >= currentbuilding) {
bait = 0;
}
else {
buildingsum += currentbuilding - currentsurrounding;
}
int anothersurround = thearray[i-1][j];
if (anothersurround >= currentbuilding) {
bait = 1;
}
else {
buildingsum += currentbuilding - anothersurround;
}
buildingsum += currentbuilding * 2;
}
else if (j == num-1) {
int currentsurrounding = thearray[i][j - 1];
if (currentsurrounding >= currentbuilding) {
bait = 1; }
else {
buildingsum += currentbuilding - currentsurrounding;
}
int anothersurround = thearray[i-1][j];
if (anothersurround >= currentbuilding) {
bait = 0;
}
else {
buildingsum += currentbuilding - anothersurround;
}
buildingsum += currentbuilding * 2;
}
else {
for (int k = 0; k < 3; k++) {
int currentsurrounding = thearray[i + dx[k]][j + dy[k]];
if (currentsurrounding >= currentbuilding) {
bait = 0;
}
else {
buildingsum += currentbuilding - currentsurrounding;
}
}
buildingsum += currentbuilding;
}
}
else if (j == num-1) {
for (int k = 0; k < 4; k++) {
if (k == 1){
continue;
}
int currentsurrounding = thearray[i + dx[k]][j + dy[k]];
if (currentsurrounding >= currentbuilding) {
bait = 0;
}
else {
buildingsum += currentbuilding - currentsurrounding;
}
}
buildingsum += currentbuilding;
}
else if(j == 0) {
for (int k = 0; k < 4; k++) {
if (k == 2) {
continue;
}
int currentsurrounding = thearray[i + dx[k]][j + dy[k]];
if (currentsurrounding >= currentbuilding) {
bait = 0;
}
else {
buildingsum += currentbuilding - currentsurrounding;
}
}
buildingsum += currentbuilding;
}
}
else {
for (int k = 0; k < 4; k++) {
int currentsurrounding = thearray[i + dx[k]][j + dy[k]];
if (currentsurrounding >= currentbuilding) {
continue;
}
else {
buildingsum += currentbuilding - currentsurrounding;
}
}
}
mainsum += buildingsum;
}
}
*/
}