Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define IOS ios::sync_with_stdio(false);cin.tie(0);
- #define fi first
- #define se second
- #define reset(n,k) memset((n),k,sizeof(n))
- #define all(n) n.begin(),n.end()
- #define pb push_back
- using namespace std;
- using ll=long long;
- using pii=pair<int,int>;
- ll X1,Y1,X2,Y2;
- ll power3[50];
- ll ans(ll tx,ll ty,ll dx,ll dy,ll num){
- if(tx >= X1 && ty >= Y1 && dx <= X2 && dy <= Y2) return power3[num];
- if(tx > X2 || ty > Y2 || dx < X1 || dy < Y1) return 0;
- ll midx = (tx + dx) / 2, midy = (ty + dy) / 2;
- return ans(tx,ty,midx,midy,num-1) + ans(midx+1,ty,dx,midy,num-1) + ans(tx,midy+1,midx,dy,num-1);
- }
- int main(){
- IOS;
- power3[0] = 1;
- for(int i=1;i<=40;i++) power3[i] = power3[i-1]*3;
- cin>>X1>>Y1>>X2>>Y2;
- cout<<ans(1,1,1LL<<39,1LL<<39,39)<<'\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement