Advertisement
Riz1Ahmed

SnackDown Pre-Elimution B

Nov 3rd, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.84 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <algorithm>
  4. using namespace std;
  5. int main(){
  6.     int t,n,m,x,y;
  7.     scanf("%d",&t);
  8.     while (t--){
  9.         scanf("%d%d%d%d",&n,&m,&x,&y);
  10.         int ans=0,i,j;
  11.         int dl=min(y-1,n-x);
  12.         int dr=min(n-x,m-y);
  13.         int ul=min(y-1,x-1);
  14.         int ur=min(m-y,x-1);
  15.         for (i=1; i<=n; i++){
  16.             for (j=1; j<=m; j++){
  17.                 if (i==x && y==j) continue;
  18.                 int dll=min(j-1,n-i);
  19.                 int drr=min(n-i,m-j);
  20.                 int ull=min(j-1,i-1);
  21.                 int urr=min(m-j,i-1);
  22.                 int zz=(n-1)*(m-1);
  23.                 zz-=(dll+drr+ull+urr);
  24.                
  25.                 if (abs(i-x)==abs(j-y)){
  26.                             if (i<x && j<y) zz+=dr;
  27.                     else if (i<x && j>y) zz+=dl;
  28.                     else if (i>x && j>y) zz+=ul;
  29.                     else if (i>x && j<y) zz+=ur;
  30.                 }
  31.                 else if (i==x)
  32.                     j<y ? zz+=m-y:zz+=y-1;
  33.                 else if (j==y)
  34.                     i<x ? zz+=n-x:zz+=x-1;
  35.                 else zz-=1;
  36.                 ans+=zz;
  37.             }
  38.         }
  39.         printf("%d\n",ans);
  40.     } return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement