https://www.acmicpc.net/problem/1783
그리디 문제.
문제 접근
나이트가 최대한 많은 곳을 방문해야 하기 때문에,
우측으로 한칸 씩만 이동해야 한다.
근데 n과 m의 조합에 따라 움직일 수 없는 경우가 있기 때문에,
사실상 많은 조건 분기 문제였다......
코드는 다음과 같다.
#include <bits/stdc++.h>
using namespace std;
void solve(){
int n,m;
cin >> n >> m;
if(m>=5){
if(n==1) cout << 1;
else if(n==2){
if(m<=2) cout << 1;
else if(m<=4) cout << 2;
else if(m<=6) cout << 3;
else cout << 4;
}
else if(m<=6) cout << 4;
else cout << m-2;
}
else{
if(n==1) cout << 1;
else if(n==2){
if(m==3 || m==4) cout << 2;
else cout << 1;
}
else cout << m;
}
}
int main(){
solve();
}