QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#258669#7795. 茧zhouhuanyi25 37ms3692kbC++142.2kb2023-11-19 22:45:132023-11-19 22:45:13

Judging History

你现在查看的是最新测评结果

  • [2023-11-19 22:45:13]
  • 评测
  • 测评结果:25
  • 用时:37ms
  • 内存:3692kb
  • [2023-11-19 22:45:13]
  • 提交

answer

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long read()
{
	char c=0;
	long long sum=0;
	while (c<'0'||c>'9') c=getchar();
	while ('0'<=c&&c<='9') sum=sum*10+c-'0',c=getchar();
	return sum;
}
const int maxn[6]={0,0,1100000000,1100000,33000,4200};
int n,t,k;
long long get_sum(long long x)
{
	if (x<0) return 0;
	if (!(x&3)) return x;
	else if ((x&3)==1) return 1;
	else if ((x&3)==2) return x^1;
	else return 0;
}
int get_lw(int x)
{
	return 1<<(31^__builtin_clz(x));
}
long long F2(int x)
{
	return 1ll*x*x-x-1+((x-get_lw(x))<<1);
}
long long F3(int x)
{
	return 1ll*x*x*x-x-1;
}
long long F4(int x)
{
	return 1ll*x*x*x*x-x-1+((x-get_lw(x))<<1);
}
long long F5(int x)
{
	return 1ll*x*x*x*x*x-x-1;
}
int solve(int d,int x)
{
	if (!d||x<0) return 0;
	int ds=get_lw(d);
	return solve(ds-1,ds-1-min((d-x)>>1,d-ds+1))^get_sum(d)^get_sum(ds+min((d-x+1)>>1,d-ds+1)-1);
}
long long calc(long long x)
{
	if (x==1) return 1;
	int d,res;
	long long ds;
	if (k==1) return get_sum(x);
	else if (k==2)
	{
		d=0;
		for (int i=log(maxn[2])/log(2);i>=0;--i)
			if (d+(1<<i)<=maxn[2]&&F2(d+(1<<i))<=x)
				d+=(1<<i);
		x-=F2(d),res=1;
		if ((x/(d+1))&1) res^=get_sum(d);
		res^=solve(d,x%(d+1)-1);
		return res;
	}
	else if (k==3)
	{
		d=0;
		for (int i=log(maxn[3])/log(2);i>=0;--i)
			if (d+(1<<i)<=maxn[3]&&F3(d+(1<<i))<=x)
				d+=(1<<i);
		ds=x-F3(d),res=(2<=(d&7)&&(d&7)<=5);
		if ((ds/(d+1))&1) res^=get_sum(d);
		res^=get_sum(ds%(d+1)-1);
		return res;
	}
	else if (k==4)
	{
		d=0;
		for (int i=log(maxn[4])/log(2);i>=0;--i)
			if (d+(1<<i)<=maxn[4]&&F4(d+(1<<i))<=x)
				d+=(1<<i);
		x-=F4(d),res=1;
		if ((x/(d+1))&1) res^=get_sum(d);
		res^=solve(d,x%(d+1)-1);
		return res;
	}
	else
	{
		d=0;
		for (int i=log(maxn[5])/log(2);i>=0;--i)
			if (d+(1<<i)<=maxn[5]&&F5(d+(1<<i))<=x)
				d+=(1<<i);
		ds=x-F5(d),res=(2<=(d&7)&&(d&7)<=5);
		if ((ds/(d+1))&1) res^=get_sum(d);
		res^=get_sum(ds%(d+1)-1);
		return res;
	}
}
int main()
{
	long long x,res;
	t=read(),k=read();
	while (t--)
	{
		n=read(),res=0;
		for (int i=1;i<=n;++i) x=read(),res^=calc(x);
		puts(res?"Lily":"Kaguya");
	}
	return 0;
}

详细

Subtask #1:

score: 5
Accepted

Test #1:

score: 5
Accepted
time: 5ms
memory: 3528kb

input:

1136 1
1
113619249930092995
2
457093394163961514 36523281
2
52273 586907144813890981
149
13412372218 128311326 618178541606515600 756479282467845696 276251850291230545 978441742104676009 1035439042005099 1105099328508110145 981121546786695466 97032240925148816 171 149766413231751232 28137602525069 9...

output:

Kaguya
Lily
Kaguya
Lily
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Lily
Lily
Lily
Lily
Kaguya
Kaguya
Lily
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Lily
Kaguya
Lily
Kaguya
Kaguya
Lily
L...

result:

ok 1136 tokens

Subtask #2:

score: 0
Wrong Answer

Test #2:

score: 0
Wrong Answer
time: 18ms
memory: 3564kb

input:

9868 2
6
45196 27174 14224 5578 40059 47649
8
38740 7 56634 37760 43117 57202 349 102
7
47 498 25922 50544 13 48434 12
11
59314 45 4091 47301 3701 38642 253 11 48627 30158 36
4
1209 43050 22162 22239
12
5 64446 660 18577 46228 48927 6 47617 55178 30917 45801 8
8
60993 148 109 37947 19683 2613 3278 1...

output:

Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Kaguya
Lily
Kaguya
Kaguya
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Kaguya
Kaguya
Lily
Lily
Kaguya
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Kaguya
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
L...

result:

wrong answer 1st words differ - expected: 'Kaguya', found: 'Lily'

Subtask #3:

score: 0
Skipped

Dependency #2:

0%

Subtask #4:

score: 0
Wrong Answer

Test #10:

score: 0
Wrong Answer
time: 1ms
memory: 3628kb

input:

500 2
2
37980539 37980540
2
193 194
2
643 644
2
3409676912 3409676913
2
537559 537560
2
374273640 374273641
2
7 8
2
3795849784 3795849785
2
79614 79615
2
3438078922 3438078923
2
3757510845 3757510846
2
1 2
2
1824633835 1824633836
2
1 2
2
55 56
2
714486861 714486862
2
2772062264 2772062265
2
14788368...

output:

Lily
Kaguya
Lily
Lily
Lily
Lily
Kaguya
Lily
Kaguya
Lily
Lily
Kaguya
Lily
Kaguya
Lily
Lily
Lily
Lily
Kaguya
Kaguya
Lily
Lily
Lily
Kaguya
Lily
Kaguya
Lily
Lily
Kaguya
Lily
Kaguya
Lily
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Lily
Lily
Kaguya
Lily
Lily
Lily
Lily
Kaguya
Lily
Kaguya
Lily
Kaguya
Lily
...

result:

wrong answer 1st words differ - expected: 'Kaguya', found: 'Lily'

Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Wrong Answer

Test #16:

score: 0
Wrong Answer
time: 37ms
memory: 3532kb

input:

1169 2
98
2052761 2052762 861925831649843897 861925831649843898 1031265876706940814 1031265876706940815 617144630657193626 617144630657193627 72 73 138103 138104 156743812713553 156743812713554 205151719721047118 205151719721047119 1065302803446555430 1065302803446555431 1545284063203 1545284063204 ...

output:

Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Kaguya
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lil...

result:

wrong answer 1st words differ - expected: 'Kaguya', found: 'Lily'

Subtask #7:

score: 10
Accepted

Test #17:

score: 10
Accepted
time: 13ms
memory: 3692kb

input:

1775 3
56
1113086767934729403 1113086767934729404 395289496182979739 395289496182979740 1036610723921853591 1036610723921853592 273906 273907 1081906643487536771 1081906643487536772 442413497681636481 442413497681636482 13354476004 13354476005 477736247131002 477736247131003 6159425067 6159425068 5 ...

output:

Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Lily
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya...

result:

ok 1775 tokens

Subtask #8:

score: 0
Wrong Answer

Test #18:

score: 0
Wrong Answer
time: 0ms
memory: 3600kb

input:

47 2
15
226 33559 101516630 2758718 1497465096 143 10221 19229493 2 19317677 2599390763 2043194 462237450 4045936184 209655973
24
1951804242 97 1448079073 419079478 1033169500 1875 2482 2350383606 16 3958107653 2574141589 2934502110 2036 2574986227 1794970348 4009429601 2844472951 155702147 18791465...

output:

Lily
Lily
Lily
Lily
Lily
Lily
Kaguya
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily
Lily

result:

wrong answer 2nd words differ - expected: 'Kaguya', found: 'Lily'

Subtask #9:

score: 10
Accepted

Test #19:

score: 10
Accepted
time: 1ms
memory: 3540kb

input:

71 3
20
1902494844 129105842 1836429008 2862717739 3767166853 2686186537 1099034 40 344827 734438640 2231265370 2818449793 114955743 540338925 553099374 9179 2122555208 580 371 1909359957
30
18 2762110981 262509769 2811288568 3618225103 47784509 255418873 4040384827 159350 87784115 1619856413 8813 1...

output:

Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Lily
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Kaguya
Kaguya
Kaguya
Kaguya
Kaguya
Lily
Kag...

result:

ok 71 tokens

Subtask #10:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #3:

0%