Submission #7039

# Submission time Handle Problem Language Result Execution time Memory
7039 2014-07-13T00:37:53 Z gs13068 CATS (NOI14_cats) C++
25 / 25
92 ms 1088 KB
#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 time Memory 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
# Verdict Execution time Memory Grader output
1 Correct 0 ms 1088 KB Output is correct
2 Correct 0 ms 1088 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 1088 KB Output is correct
2 Correct 0 ms 1088 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 1088 KB Output is correct
2 Correct 0 ms 1088 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 1088 KB Output is correct
2 Correct 4 ms 1088 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 84 ms 1088 KB Output is correct
2 Correct 92 ms 1088 KB Output is correct