#include <iostream>
#include <cstdio>
using namespace std;
int determpoz(int x, int y, int panta, int ct, bool super){
int relatx, relaty;
//printf("X = %d, y = %d, panta = %d, ct = %d\n\n", x, y, panta, ct);
if(x > 0){
if(y > 0){
// printf("Ori sus ori dreapta\n");
if(super){
relaty = panta * x + ct;
printf("Relativ y = %d\n\n", relaty);
if(y < relaty){
// printf("Dreapta\n\n");
return 0;
}
// printf("Sus\n\n");
return 3;
}
else{
relatx = panta * y + ct;
// printf("Relativ x = %d\n\n", relatx);
if(x < relatx){
// printf("Sus\n\n");
return 3;
}
//printf("Dreapta\n\n");
return 0;
}
}
else{
// printf("Ori jos ori dreapta\n");
if(super){
relaty = -(panta * x) - ct;
// printf("Relativ y = %d\n\n", relaty);
if(y > relaty){
// printf("Dreapta\n\n");
return 0;
}
// printf("Jos\n\n");
return 1;
}
else{
relatx = panta * (-y) + ct;
// printf("Relativ x = %d\n\n", relatx);
if(x < relatx){
// printf("Jos\n\n");
return 1;
}
// printf("Dreapta\n\n");
return 0;
}
}
}
else{
if(y > 0){
// printf("Ori sus ori stanga\n");
if(super){
relaty = panta * x + ct;
// printf("Relativ y = %d\n\n", relaty);
if(y < relaty){
// printf("Stanga\n\n");
return 2;
}
// printf("Sus\n\n");
return 3;
}
else{
relatx = -(panta * y) - ct;
// printf("Relativ x = %d\n\n", relatx);
if(x > relatx){
// printf("Sus\n\n");
return 3;
}
// printf("Stangan\n\n");
return 2;
}
}
else{
// printf("Ori jos ori stanga\n");
if(super){
relaty = panta * x - ct;
// printf("Relativ y = %d\n\n", relaty);
if(y > relaty){
// printf("Stanga\n\n");
return 2;
}
// printf("Jos\n\n");
return 1;
}
else{
relatx = panta * y - ct;
// printf("Relativ x = %d\n\n", relatx);
if(x > relatx){
// printf("Jos\n\n");
return 1;
}
// printf("Stanga\n\n");
return 2;
}
}
}
}
int main()
{
freopen("romb2.in", "r", stdin);
freopen("romb2.out", "w", stdout);
int t;
scanf("%d", &t);
for(int test = 1; test <= t; ++test){
int dx, dy, k, cx, cy;
scanf("%d%d%d%d%d", &dx, &dy, &k, &cx, &cy);
int regiune = 1;
int panta, constanta;
//printf("Testul %d\n\n", test);
bool super = 0;
if(dx < dy){
panta = dy / dx;
super = 1;
}
else
panta = dx / dy;
//printf("Avem dx = %d si dy = %d. Panta = %d ", dx, dy, panta);
while(k > 0){
if(super)
constanta = dy - dx * panta;
else
constanta = dx - dy * panta;
// printf("Constanta = %d\n", constanta);
dx /= 2;
dy /= 2;
//printf("Noii dx si dy sunt %d si %d\n", dx, dy);
int eroare = determpoz(cx, cy, panta, constanta, super);
// printf("Eroare = %d", eroare);
if(eroare == 3){
cy -= dy;
// printf(" Merg in rombul 1. Cx = %d, Cy = %d\n\n", cx, cy);
}
if(eroare == 2){
cx += dx;
// printf(" Merg in rombul 2. Cx = %d, Cy = %d\n\n", cx, cy);
}
if(eroare == 1){
cy += dy;
// printf(" Merg in rombul 3. Cx = %d, Cy = %d\n\n", cx, cy);
}
if(eroare == 0){
cx -= dx;
// printf(" Merg in rombul 4. Cx = %d, Cy = %d\n\n", cx, cy);
}
regiune = 4 * regiune - eroare;
//printf("Noua regiune este %d\n\n", regiune);
k--;
}
printf("%d\n", regiune);
}
return 0;
}