Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void tower(int N, int m, int n, vector<pair<int, int>>& v){
- if(N == 1){
- v.push_back({m, n});
- } else{
- if(m == 1 && n == 2){
- tower(N-1, 1, 3, v);
- v.push_back({m, n});
- tower(N-1, 3 ,2, v);
- } else if(m == 3 && n == 2){
- tower(N-1, 3, 1, v);
- v.push_back({m, n});
- tower(N-1, 1, 2, v);
- } else if(m == 3 && n == 1){
- tower(N-1, 3, 2, v);
- v.push_back({m, n});
- tower(N-1, 2, 1, v);
- } else if(m == 2 && n == 1){
- tower(N-1, 2, 3, v);
- v.push_back({m, n});
- tower(N-1, 3, 1, v);
- } else if(m == 2 && n == 3){
- tower(N-1, 2, 1, v);
- v.push_back({m, n});
- tower(N-1, 1, 3, v);
- } else{
- tower(N-1, 1, 2, v);
- v.push_back({m, n});
- tower(N-1, 2, 3, v);
- }
- }
- }
- vector<int> shiftPile(int N, int n){
- vector<pair<int,int>> v;
- vector<int> p;
- tower(N, 1, 3, v);
- p.push_back(v[n-1].first);
- p.push_back(v[n-1].second);
- return p;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement