今日の問題
↑押してください。
自分の回答(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)))
}
//ここより上は定型文です。
input = input.trim().split("\n")
res = 1
n = parseInt(input.shift())
t = input.shift().split("/")
mae = 0
for(let i = 0;i<t.length;i++){
ato = 0
for(let j = 0;j<t[i].length;j++){
if(t[i][j] == "2"){
ato ++
}else{
break
}
}
res = Math.max(res,Math.min(mae,ato)*2+1)
mae = 0
for(let j = t[i].length-1;j>=0;j--){
if(t[i][j] == "1"){
mae ++
}else{
break
}
}
}
console.log(res)
}
Main(require("fs").readFileSync(0, "utf8"));
工夫した点
"/"でsplitしてそれぞれの前と後での連続数の最大値を更新していきました。特に計算量の心配はありません。