육각형 타일로 이루어진 집이 있다. 이 집에서 원숭이와 멍멍이가 위치를 인식하는 방법이 다르다. 멍멍이가 위치를 인식하는 방법을 원숭이가 위치를 인식하는 방법으로 바꿔야 한다.
처음에는 방법이 바로 떠오르지는 않았는데, 좌표의 두 값 모두 0 이상이라는 것에 주목해서 규칙을 찾을 수 있었습니다.
입력 받은 좌표를 라고 할 때,
1. y가 0일 때는 원숭이 방법으로 바꾼 값이 과 같은 식으로, 수열의 차이가 6의 배수꼴이 되도록 증가하게 된다.
2. y가 0이 아닌 경우에는 값이 의 값에서 y값의 차이만큼 증가하게 된다. 즉, 의 값에 를 더한 값이 된다.
의 값은 1번 규칙으로 구할 수 있다.
이를 이용하면 쉽게 코드를 작성할 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
long long x, y, res = 1;
cin >> x >> y;
for (long long i = 1; i < x + y + (!y ? 1 : 0); i++)
res += 6 * i;
cout << res + y;
return 0;
}