Submission #7039

#TimeUsernameProblemLanguageResultExecution timeMemory
7039gs13068CATS (NOI14_cats)C++98
25 / 25
92 ms1088 KiB
#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; if(T*N==L) { P=X%6; X=(X/6)&((1LL<<K)-1); for(T=0;X;X>>=1)T^=X&1; if(T) { if(P==1||P==3)printf("%lld\n",((L+N-1)/N+1)*N); else if(P==2||P==4)printf("%lld\n",((L+N-1)/N+1)*N+1); else printf("%lld\n",L/N*N+1); } else { if(P==0||P==4)printf("%lld\n",((L+N-1)/N+1)*N); else if(P==1||P==5)printf("%lld\n",((L+N-1)/N+1)*N+1); else printf("%lld\n",L/N*N+1); } } else { 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); } } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...