Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int _x[4] = {0, 1, 0, -1};
- int _y[4] = {1, 0, -1, 0};
- int n, m, end_x, end_y, begin_x, begin_y;
- bool check(int x, int y){
- return x <= n && x > 0 && y <= m && y > 0;
- }
- int vis[17][17],val[17][17], ans;
- void complete(int l, int c, int qnt){
- vis[l][c] = true;
- //val[l][c] = max(val[l][c], qnt);
- if(l == end_x && c == end_y) ans = max(ans, qnt);
- for(int i = 0; i < 4; i++){
- int x = l + _x[i];
- int y = c + _y[i];
- if(check(x, y) && !vis[x][y]){
- complete(x, y, qnt + 1);
- }
- }
- vis[l][c] = false;
- }
- int main(){
- scanf("%d %d", &n, &m);
- n = (n+1)/2;
- m = (m+1)/2;
- scanf("%d %d", &begin_x, &begin_y);
- begin_x = (begin_x + 1)/2;
- begin_y = (begin_y + 1)/2;
- scanf("%d %d", &end_x, &end_y);
- end_x = (end_x + 1)/2;
- end_y = (end_y + 1)/2;
- ans = 0;
- complete(begin_x, begin_y, 0);
- //for(int i = 1; i <= n; i++){
- // for(int j = 1; j <= m; j++) cout << val[i][j] << " \n"[j == m];
- //}
- printf("%d", 2*ans + 1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement