Submission

Status:

----------

Subtask/Task Score:

0/100

Score: 0

User: theem1502

Problemset: บริษัททำความสะอาด

Language: c

Time: 0.002 second

Submitted On: 2025-09-28 14:49: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;
        }

    }*/

    //printf("%d", mainsum);
}