QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#258665 | #7795. 茧 | zhouhuanyi | 0 | 23ms | 3540kb | C++14 | 2.2kb | 2023-11-19 22:40:12 | 2023-11-19 22:40:12 |
Judging History
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};
long long n;
int 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,ds,res;
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()
{
int x;
long long 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: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 6ms
memory: 3340kb
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 Lily Kaguya Lily Lily Lily Kaguya Lily Lily Lily Kaguya Lily Lily Lily Lily Lily Lily Lily Lily Kaguya Lily Lily Lily Lily Kaguya Lily Kaguya Lily Lily Lily Lily Lily Kaguya Lily Lily Kaguya Kaguya Lily Kaguya Lily Lily Lily Lily Lily Kaguya Kaguya Lily Kaguya Lily Kaguy...
result:
wrong answer 6th words differ - expected: 'Kaguya', found: 'Lily'
Subtask #2:
score: 0
Wrong Answer
Test #2:
score: 0
Wrong Answer
time: 18ms
memory: 3496kb
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: 3384kb
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 Kaguya Lily Lily Kaguya Kaguya Kaguya Kaguya Kaguya Kaguya Lily Kaguya Lily Lily Kaguya 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 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: 23ms
memory: 3424kb
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: 0
Wrong Answer
Test #17:
score: 0
Wrong Answer
time: 13ms
memory: 3492kb
input:
1775 3 56 1113086767934729403 1113086767934729404 395289496182979739 395289496182979740 1036610723921853591 1036610723921853592 273906 273907 1081906643487536771 1081906643487536772 442413497681636481 442413497681636482 13354476004 13354476005 477736247131002 477736247131003 6159425067 6159425068 5 ...
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 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 Lil...
result:
wrong answer 1st words differ - expected: 'Kaguya', found: 'Lily'
Subtask #8:
score: 0
Wrong Answer
Test #18:
score: 0
Wrong Answer
time: 1ms
memory: 3280kb
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: 0
Wrong Answer
Test #19:
score: 0
Wrong Answer
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:
Lily Lily Lily Lily Lily Kaguya Lily Kaguya Lily Lily Lily Kaguya Kaguya Kaguya Kaguya Lily Kaguya Lily Kaguya Lily Lily Lily Lily Lily Lily Kaguya Lily Lily Lily Lily Kaguya Lily Lily Lily Lily Lily Lily Kaguya Lily Lily Lily Lily Lily Lily Lily Lily Kaguya Kaguya Lily Kaguya Lily Lily Kaguya Kaguy...
result:
wrong answer 1st words differ - expected: 'Kaguya', found: 'Lily'
Subtask #10:
score: 0
Skipped
Dependency #1:
0%