#include <stdio.h>
int price[1001][4]={};
int memo[1001][4]={};
int n;
int RGB(int i,int beFore){
if(i == n)
return 0;
if(memo[i][beFore] != 0)
return memo[i][beFore];
int R,G,B;
if(beFore != 1)
R = price[i][1] + RGB(i+1,1);
if(beFore != 2)
G = price[i][2] + RGB(i+1,2);
if(beFore != 3)
B = price[i][3] + RGB(i+1,3);
if(beFore == 1){
if(G < B){
memo[i][beFore] = G;
return G;
}
else{
memo[i][beFore] = B;
return B;
}
}
if(beFore == 2){
if(R < B){
memo[i][beFore] = R;
return R;
}
else{
memo[i][beFore] = B;
return B;
}
}
if(beFore == 3){
if(R < G){
memo[i][beFore] = R;
return R;
}
else{
memo[i][beFore] = G;
return G;
}
}
if(beFore == 0){
if(R < G){
if(R < B){
memo[i][beFore] = R;
return R;
}
else{
memo[i][beFore] = B;
return B;
}
}
else{
if(G < B){
memo[i][beFore] = G;
return G;
}
else{
memo[i][beFore] = B;
return B;
}
}
}
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d %d %d",&price[i][1],&price[i][2],&price[i][3]);
}
printf("%d",RGB(0,0));
return 0;
}
top of page
실제 작동 상태를 확인하려면 라이브 사이트로 이동하세요.
수정: 2월 28일
RGB 거리
RGB 거리
댓글 0개
좋아요
댓글(0)
bottom of page