LKNIGHT - Mã đi tuần
Tác giả: RR
Ngôn ngữ: C++
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
const int di[] = {-2, -1, 1, 2, 2, 1, -1, -2};
const int dj[] = { 1, 2, 2, 1, -1, -2, -2, -1};
int n;
void maintain(int &x) {
if (x < 1) x = 1;
if (x > n) x = n;
}
int main() {
int k;
cin >> n >> k;
int left = 1, right = n, up = 1, down = n;
string s;
cin >> s;
for(int i = 0; i < k; i++) {
int dir = s[i] - '1';
left += dj[dir];
right += dj[dir];
up += di[dir];
down += di[dir];
maintain(left);
maintain(right);
maintain(up);
maintain(down);
}
cout << (right - left + 1) * (down - up + 1);
return 0;
}