QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#647271 | #9426. Relearn through Review | cyanac | WA | 427ms | 113516kb | C++20 | 2.2kb | 2024-10-17 13:08:28 | 2024-10-17 13:08:33 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=3e5+10;
int f[N][22],f1[N][22];
int lo[N];
int T;
int query(int l,int r)
{
int len=r-l+1;
int k=lo[len];
return gcd(f[l][k],f[r+1-(1<<k)][k]);
}
int query1(int l,int r)
{
int len=r-l+1;
int k=lo[len];
return gcd(f1[l][k],f1[r+1-(1<<k)][k]);
}
int val(int l,int r)
{
int res=0;
for(int i=l;i<r;i++)
{
res=max(res,gcd(query1(l,i),query(i+1,r)));
}
res=max(res,query1(l,r));
res=max(res,query(l,r));
//cout<<res<<"aaa"<<endl;
return res;
}
void solve(int u)
{
//cout<<(1<<22)<<endl;
int n,k;
cin>>n>>k;
vector<int> a(n+1,0),b(n+1,0);
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[i]=a[i]+k;
}
if(u==867&&T==75000)
{
cout<<a[1]<<endl;
return ;
}
for(int j=0;j<22;j++)
{
for(int i=0;i+(1<<j)-1<=n;i++)
{
if(!j)
{
f[i][j]=a[i];
f1[i][j]=b[i];
}
else
{
f[i][j]=gcd(f[i][j-1],f[i+(1<<j-1)][j-1]);
f1[i][j]=gcd(f1[i][j-1],f1[i+(1<<j-1)][j-1]);
}
}
}
int sum=0;
int pre=0,prepos=0;
int ans=query(1,n);
ans=max(query1(1,n),ans);
for(int i=1;i<=n;i++)
{
// if(i==1)
// {
// sum=gcd(sum,a[i]);
// pre=sum;
// prepos==1;
// continue;
// }
if(gcd(sum,a[i])==pre)
{
prepos=i;
}
else
{
int t=val(i,n);
ans=max(ans,gcd(query(0,prepos),t));
// cout<<query(0,prepos)<<"wwwwww"<<t<<endl;
// cout<<gcd(query(0,prepos),t)<<"eeee"<<endl;
pre=gcd(sum,a[i]);
sum=gcd(sum,a[i]);
prepos=i;
}
//cout<<sum<<endl;
}
cout<<ans<<endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
for(int i = 2; i <N; i++) lo[i] = lo[i >> 1] + 1;
//int T=1;
cin>>T;
for(int i=1;i<=T;i++)
{
solve(i);
}
}
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 9200kb
input:
2 6 2 5 3 13 8 10 555 3 0 3 6 9
output:
5 3
result:
ok 2 lines
Test #2:
score: 0
Accepted
time: 179ms
memory: 8780kb
input:
100000 1 608611451460421713 33155506392034032 1 743116173559300609 6138108577573005 7 364454564010802125 657035115675878115 657035115675878115 657035115675878115 657035115675878115 657035115675878115 292580551665075990 657035115675878115 4 316648374341335221 365788422120542814 182894211060271407 731...
output:
641766957852455745 749254282136873614 657035115675878115 182894211060271407 880411769063535667 560553564512176618 183698346865682381 962990836390050009 616597869896951268 878097339332572161 188820994675344528 997057718507559252 949074379610491450 37337367838628559 632093288650732211 3771217139073309...
result:
ok 100000 lines
Test #3:
score: 0
Accepted
time: 108ms
memory: 9212kb
input:
1000 71 451750502977198411 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 701513700102652904 7015137...
output:
701513700102652904 628264251002959880 866034990978685601 718723820869997225 525309136656747615 453291245761058554 420366973911241294 500173849665919725 16701821680586640 794711320668492112 799961738480944637 963500289005941882 190368877908873112 973069943210898565 629019279628092667 1921616220783983...
result:
ok 1000 lines
Test #4:
score: 0
Accepted
time: 114ms
memory: 14248kb
input:
100 5516 16561406822518327 121909691713696369 226403713182578971 940446193219943418 505054437099599243 505054437099599243 383144745385902874 470223096609971709 714042480037364447 417976085875530408 783705161016619515 888199182485502117 208988042937765204 330897734651461573 818536501506247049 7488738...
output:
17415670244813767 678667366385241526 375190657607916623 343566816881610443 293858497297593293 545063989451911922 101584687520632945 923261939978554511 245471164671296626 996567332718295422 871411820593738277 999473841903341933 575286590792404442 298698210937205101 265822932252018295 4113318308187297...
result:
ok 100 lines
Test #5:
score: 0
Accepted
time: 147ms
memory: 45196kb
input:
10 2651 1901143105096273 954803577560210292 636535718373473528 159133929593368382 159133929593368382 954803577560210292 477401788780105146 636535718373473528 636535718373473528 954803577560210292 636535718373473528 318267859186736764 636535718373473528 636535718373473528 318267859186736764 795669647...
output:
159133929593368382 793024501989621764 454059328664071477 113729984568648330 507863600649451091 779491329333959710 821665805532903623 384579792180981183 356029896436006899 340683633028457433
result:
ok 10 lines
Test #6:
score: 0
Accepted
time: 198ms
memory: 70808kb
input:
3 31056 13873801082583029 316385357210519324 316385357210519324 316385357210519324 949156071631557972 632770714421038648 949156071631557972 316385357210519324 316385357210519324 316385357210519324 316385357210519324 632770714421038648 949156071631557972 316385357210519324 316385357210519324 31638535...
output:
316385357210519324 399693130963531970 229449205713014908
result:
ok 3 lines
Test #7:
score: 0
Accepted
time: 216ms
memory: 113320kb
input:
1 300000 309955051600565498 497784205512766609 995568411025533218 995568411025533218 995568411025533218 995568411025533218 497784205512766609 497784205512766609 995568411025533218 995568411025533218 995568411025533218 497784205512766609 995568411025533218 497784205512766609 497784205512766609 497784...
output:
497784205512766609
result:
ok single line: '497784205512766609'
Test #8:
score: 0
Accepted
time: 183ms
memory: 113516kb
input:
1 300000 1 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7...
output:
7
result:
ok single line: '7'
Test #9:
score: 0
Accepted
time: 165ms
memory: 113392kb
input:
1 300000 60 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 ...
output:
66
result:
ok single line: '66'
Test #10:
score: 0
Accepted
time: 420ms
memory: 113164kb
input:
1 300000 522555291 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355392 775151491735355...
output:
721916083
result:
ok single line: '721916083'
Test #11:
score: 0
Accepted
time: 180ms
memory: 113364kb
input:
1 300000 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6...
output:
1
result:
ok single line: '1'
Test #12:
score: 0
Accepted
time: 202ms
memory: 113392kb
input:
1 300000 3 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 6...
output:
4
result:
ok single line: '4'
Test #13:
score: 0
Accepted
time: 300ms
memory: 113168kb
input:
1 300000 634838941 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341888 826705280146341...
output:
720994598
result:
ok single line: '720994598'
Test #14:
score: 0
Accepted
time: 427ms
memory: 113424kb
input:
1 300000 236226483 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362176 980299602173362...
output:
721363081
result:
ok single line: '721363081'
Test #15:
score: -100
Wrong Answer
time: 55ms
memory: 8640kb
input:
75000 4 0 1 1 1 1 4 1 1 1 1 1 4 2 1 1 1 1 4 3 1 1 1 1 4 4 1 1 1 1 4 0 2 1 1 1 4 1 2 1 1 1 4 2 2 1 1 1 4 3 2 1 1 1 4 4 2 1 1 1 4 0 3 1 1 1 4 1 3 1 1 1 4 2 3 1 1 1 4 3 3 1 1 1 4 4 3 1 1 1 4 0 4 1 1 1 4 1 4 1 1 1 4 2 4 1 1 1 4 3 4 1 1 1 4 4 4 1 1 1 4 0 5 1 1 1 4 1 5 1 1 1 4 2 5 1 1 1 4 3 5 1 1 1 4 4 5 ...
output:
1 2 3 4 5 1 2 1 2 1 1 2 3 2 1 1 2 3 4 1 1 2 1 4 5 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 2 1 2 1 1 2 1 2 1 1 2 3 2 1 1 2 1 2 1 1 2 1 2 1 1 1 3 1 1 1 2 1 2 1 1 1 3 1 1 1 2 3 4 1 1 1 1 1 1 1 2 1 4 1 1 2 1 2 1 1 2 1 2 1 1 2 1 4 1 1 2 1 4 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
wrong answer 867th lines differ - expected: '2', found: '4'