Pagini recente »
Istoria paginii runda/lasm_09_01_2025_clasa11
|
matrix_preloaded
|
Istoria paginii runda/vaslui_cls78_24.11/clasament
|
Istoria paginii runda/cel_mai_greu_concurs_luca_prunoiu
|
Cod sursă (job #513383)
Cod sursă (job
#513383)
#include <stdio.h>
int X[4], Y[4];
int main(){
int t;
FILE *fin = fopen("romb2.in", "r");
FILE *fout = fopen("romb2.out", "w");
fscanf(fin, "%d", &t);
for (int i=0;i<t;++i) {
int dx, dy, steps, xcity, ycity;
fscanf(fin, "%d%d%d%d%d", &dx, &dy, &steps, &xcity, &ycity);
xcity *= dy;
ycity *= dx;
dx *= dy;
Y[0] = -dx;
X[1] = dx;
Y[2] = dx;
X[3] = -dx;
long long ans = 0;
for (int j=0;j<steps;++j) {
int a = (xcity > ycity);
int b = (xcity + ycity > 0);
int q = (a << 1) ^ (a == b);
xcity <<= 1;
ycity <<= 1;
xcity += X[q];
ycity += Y[q];
ans = (ans << 2) ^ q;
}
fprintf(fout, "%lld\n", ans + 1);
}
fclose(fin);
fclose(fout);
return 0;
}