티스토리 뷰

var a,b,c,d:int64;
begin
d:=0;
read(a,b,c);
if (c mod 2)=1 then c-=1;

if b=0 then d:=3*c div 2
else if c>1 then begin  
 d:=(b-1)*2+5;
 d+=3*(c-2)div 2;
end;

if a>0 then d+=a*2;
write(d);
end.

 

풀이

 

1. Corner 블럭 짝수개를 취합니다.

2. S-tile 은 Corner 블럭이 2개가 있다면 연결할 수 있습니다.

 

중요한것은 Corner 블럭 2개가 있다면 반드시 그 사이에 S-tile 블럭을 끼어넣는것이 좋습니다.

또한 S-tile 끼리 서로 연결한 다음 양 끝쪽에 Corner을 붙이면 됩니다. (S-tile - 1)*2 + 5 만큼 증가시켜줍니다.

만약 짝수개의 Corner 블럭이 남았다면 2개당 3씩 증가시켜줍니다.

 

3. Sqaure 개수 만큼 * 2 을 증가시켜줍니다.

 

4. 결과를 출력합니다.

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함