Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define mp make_pair
- #define pb push_back
- using namespace std;
- int n, m;
- int A = 3, B = 5, C = 4, D = 6;
- map < pair <int, int>, bool> odw;
- queue <pair <int, int> > q;
- bool zakres(int x, int y)
- {
- return -100 <= min(x,y) && max(x,y) <= 100;
- }
- void bfs()
- {
- q.push(mp(0, 0));
- odw[mp(0, 0)] = true;
- while(!q.empty())
- {
- int a = q.front().first, b = q.front().second;
- q.pop();
- if(!odw[mp(a + A, b + B)] && zakres(a + A, b + B))
- odw[mp(a + A, b + B)] = true,
- q.push(mp(a + A, b + B));
- if(!odw[mp(a - A, b - B)] && zakres(a - A, b - B))
- odw[mp(a - A, b - B)] = true,
- q.push(mp(a - A, b - B));
- if(!odw[mp(a - C, b - D)] && zakres(a - C, b - D))
- odw[mp(a - C, b - D)] = true,
- q.push(mp(a - C, b - D));
- if(!odw[mp(a + C, b + D)] && zakres(a + C, b + D))
- odw[mp(a + C, b + D)] = true,
- q.push(mp(a + C, b + D));
- }
- }
- int main()
- {
- scanf("%d%d",&n, &m);
- bfs();
- for(int i = -n;i <= n;++i)
- {
- for(int j = -m;j <= m;++j)
- printf("%d ",odw[mp(i, j)]);
- puts("");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement