Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Task : _example
- Author : Phumipat C. [MAGCARI]
- Language: C++
- Created : 20 February 2023 [22:08]
- */
- #include<bits/stdc++.h>
- using namespace std;
- int u,v,w,p;
- int play(int sz,long long r,long long c){
- if(sz == 1){
- if(r == 1){
- if(c == 1) return u;
- else return v;
- }else{
- if(c == 1) return w;
- else return p;
- }
- }
- long long half = (1ll << (sz-1));
- if(r <= half && c <= half){
- // upper left zone
- return play(sz-1,r,c);
- }else if(r <= half && c > half){
- // upper right zone
- long long newc = c - half;
- return play(sz-1,newc,r);
- }else if(r > half && c <= half){
- // lower left zone
- long long newr = r-half;
- return -play(sz-1,newr,c);
- }else{
- // lower right zone
- long long newr = r-half,newc = c-half;
- return -play(sz-1,newc,newr);
- }
- }
- int main(){
- cin.tie(0)->sync_with_stdio(0);
- cin.exceptions(cin.failbit);
- long long n,m;
- cin >> n >> m >> u >> v >> w >> p;
- while(m--){
- long long r,c;
- cin >> r >> c;
- cout << play(n,r,c) << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment