#include<cstdio>
int main()
{
int tcn;
scanf("%d",&tcn);
while(tcn--)
{
long long K,P;
long long T,X,L,N;
scanf("%lld%lld%lld",&X,&L,&N);
X--;
N<<=1;
T=(L+N-1)/N;
K=T-1;
if(K>62)K=62;
P=X%4;
X=(X/4)&((1LL<<K)-1);
for(T=0;X;X>>=1)T^=X&1;
if(T)
{
if(P==0||P==3)printf("%lld\n",(L+N-1)/N*N+1);
else printf("%lld\n",(L+N-1)/N*N);
}
else
{
if(P==1||P==2)printf("%lld\n",(L+N-1)/N*N+1);
else printf("%lld\n",(L+N-1)/N*N);
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
1088 KB |
Output is correct |
2 |
Correct |
0 ms |
1088 KB |
Output is correct |
3 |
Correct |
0 ms |
1088 KB |
Output is correct |
4 |
Correct |
0 ms |
1088 KB |
Output is correct |
5 |
Correct |
0 ms |
1088 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
1088 KB |
Output is correct |
2 |
Correct |
0 ms |
1088 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
1088 KB |
Output is correct |
2 |
Correct |
0 ms |
1088 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
1088 KB |
Output is correct |
2 |
Correct |
0 ms |
1088 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4 ms |
1088 KB |
Output is correct |
2 |
Correct |
8 ms |
1088 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
84 ms |
1088 KB |
Output is correct |
2 |
Correct |
96 ms |
1088 KB |
Output is correct |