Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: devilpoohs

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-09 12:36:00

#include<bits/stdc++.h>
using namespace std;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin>>n;
    string s;
    int ar[n][n];
    cin>>s;
    int len=0;
    bool chk=false;
    int num;
    queue<int> q;
    int ii=0;
    for(int i=0;i<s.size();i++){
        if(s[i]>='0' and s[i]<='9'){
            len++;
            chk=true;
        }else{
            if(chk==true){
                num=stoi(s.substr(i-len,len));
                // cout<<num<<' ';
                q.emplace(num);
                chk=false;
                len=0;
            }
            if(s[i]==']'){
                int jj=0;
                while(!q.empty()){
                    // cout<<q.front()<<' ';
                    ar[ii][jj]=q.front();
                    jj++;
                    q.pop();

                }
                // cout<<'\n';
                ii++;
            }
        }
    }
    // for(int i=0;i<n;i++){
    //     for(int j=0;j<n;j++){
    //         cout<<ar[i][j]<<' ';
    //     }
    //     cout<<'\n';
    // }
    int sum=0;
    int di[4]={0,0,1,-1};
    int dj[4]={1,-1,0,0};
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(ar[i][j]>0) sum+=2;
            sum+=(ar[i][j]*4);
            for(int k=0;k<4;k++){
                int ni=i+di[k];
                int nj=j+dj[k];
                if(ni>=0 and nj>=0 and ni<n and nj<n){
                    sum-=(min(ar[i][j],ar[ni][nj]));
                }
            }
        }
    }
    cout<<sum;
    return 0;
}
/*

3
[[1,1,1],[1,0,1],[1,1,1]]

3
[[2,2,2],[2,1,203],[2,2,2]]

2
[[1,2],[3,4]]

*/