Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Surachate
Problemset: บริษัททำความสะอาด
Language: cpp
Time: 0.005 second
Submitted On: 2026-10-13 21:01:53
#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
string s;
cin >> s;
int arr[500][500] = {};
int row = 0, col = 0;
int num = 0;
bool reading = false;
for (char x : s) {
if (isdigit(x)) {
num = num * 10 + (x - '0');
reading = true;
} else if (reading) {
arr[row][col] = num;
col++;
if (col == n) {
col = 0;
row++;
}
num = 0;
reading = false;
}
}
if (reading && row < n) {
arr[row][col] = num;
}
long long sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int h = arr[i][j];
if (h == 0) continue;
sum += 4LL * h + 2;
if (i > 0)
sum -= min(h, arr[i-1][j]);
if (i < n-1)
sum -= min(h, arr[i+1][j]);
if (j > 0)
sum -= min(h, arr[i][j-1]);
if (j < n-1)
sum -= min(h, arr[i][j+1]);
}
}
cout << sum << '\n';
return 0;
}