37 lines
972 B
TypeScript
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]))); |