今日の問題
↑押してください。
自分の回答(javascript)
function Main(input){
min = 1e18
max = -1e18
let abc = "abcdefghijklmnopqrstuvwxyz".split("")
let ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")
let f = 3
if(f == 0){
input = parseInt(input.trim())
}
if(f == 1){
input = input.trim().split("\n").map((a)=>parseInt(a))
}
if(f == 2){
input = input.trim().split("\n").map((a)=>a.split(" ").map((b)=>parseInt(b)))
}
//ここより上は定型文です。
res = 0
input = input.trim().split("\n")
let [h,w,d] = input.shift().split(" ").map((a)=>parseInt(a))
let s = input.map((a)=>a.split(""))
for(let i = 0;i<h*w;i++){
for(let j = 0;j<h*w;j++){
y1 = Math.floor(i/w)
x1 = i-y1*w
y2 = Math.floor(j/w)
x2 = j-y2*w
//console.log(y1,y2,x1,x2)
if(s[y1][x1] == "."&&s[y2][x2] == "."){
count = 0
for(let k = 0;k<h;k++){
for(let l = 0;l<w;l++){
if(Math.abs(y1-k)+Math.abs(x1-l)<=d||Math.abs(y2-k)+Math.abs(x2-l)<=d){
if(s[k][l] == "."){
count ++
}
}
}
}
res = Math.max(res,count)
}
}
}
console.log(res)
}
Main(require("fs").readFileSync(0, "utf8"));
工夫した点
愚直にすべてのマスとその周りを調べました。1010が最大なので、多くても計算量は1010*9くらいだから全然大丈夫です。