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]]
*/