안녕하세요. 오늘은 ㄱ 나이트 게임을 할 거예요.
https://www.acmicpc.net/problem/31459
그냥 (1,1)부터 (X,Y)까지 그리디로 풀면 됩니다.
그 칸이 가능한지 여부는 (i-x,j-y)칸에 있는지 없는지만 확인해주면 됩니다.
#include <iostream>
#define ll long long
using namespace std;
int main()
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll T;
cin >> T;
while (T--)
{
ll X, Y, x, y, map[55][55] = { 0 }, cnt = 0;
cin >> X >> Y >> x>> y;
for (ll i = 1; i <= X; i++)
{
for (ll j = 1; j <= Y; j++)
{
if (i - x >= 1 && j - y >= 1 && map[i - x][j - y] == 1) //불가능
continue;
map[i][j] = 1;
cnt++;
}
}
cout << cnt << "\n";
}
}
감사합니다.