Problem Solving/BOJ

[백준 / BOJ] C++ 27512 스네이크

nageune 2023. 2. 27. 01:36
728x90
반응형

27512번: 스네이크

 

문제

https://www.acmicpc.net/problem/27512

 

27512번: 스네이크

두 정수 $n$과 $m$이 한 줄에 공백으로 분리되어 주어집니다. ($2 \le n,m \le 200$)

www.acmicpc.net

 

 

풀이

N × M 격자에서 뱀의 머리와 꼬리가 맞닿아 있으면서 길이가 가장 긴 것을 구하는 문제다. 처음엔 사각형 외곽을 두르는 길이라고 생각했으나 사실 꼬불꼬불하게 가면 더 길어질 수 있다. 그리고 규칙이 있는데 N과 M 중 하나라도 짝수면 뱀은 N × M 격자를 모두 지날 수 있다. 둘 중 하나라도 짝수가 아니라면 즉, 둘 다 홀수라면 뱀은 아무리 꼬불꼬불하게 가더라도 한 칸은 지나갈 수 없다.

 

 

코드

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  int n, m;
  cin >> n >> m;
  if (n % 2 == 0 || m % 2 == 0)
    cout << n * m;
  else
    cout << n * m - 1;
  return 0;
}
728x90
반응형