2025-11-13 23:42:24 +09:00

37 lines
972 B
TypeScript

export {};
const input = require("fs").readFileSync(0).toString().trim().split("\n");
const N = Number(input[0]);
let R: number[] = [];
let G: number[] = [];
let B: number[] = [];
input.slice(1).forEach(line => {
const [r,g,b]: number[] = line.split(" ").map(Number);
R.push(r);
G.push(g);
B.push(b);
});
const min = (a: number,b: number): number => Math.min(a,b);
let result: number[] = [];
for(let i=0; i<3; i++) {
let prevR = i!=0 ? 1000 : R[0];
let prevG = i!=1 ? 1000 : G[0];
let prevB = i!=2 ? 1000 : B[0];
for(let i=1; i<N; i++) {
const curR = R[i] + min(prevG, prevB);
const curG = G[i] + min(prevR, prevB);
const curB = B[i] + min(prevG, prevR);
[prevR, prevG, prevB] = [curR, curG, curB];
}
if(i===0) result.push(min(prevG, prevB));
else if(i===1) result.push(min(prevR, prevB));
else result.push(min(prevG, prevR));
}
console.log(min(result[0], min(result[1], result[2])));