QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#661327 | #9426. Relearn through Review | SkyEyeController | WA | 175ms | 68144kb | C++23 | 1.9kb | 2024-10-20 15:49:19 | 2024-10-20 15:49:19 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 4e5 + 9;
int st[22][maxn];
int a[maxn];
int log2s[maxn];
void solve()
{
int n;
cin >> n;
int k;
cin >> k;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
st[0][i] = a[i] + k;
}
for (int i = 1; i <= 21; i++)
{
for (int j = 1; j + (1 << i) - 1 <= n; j++)
{
st[i][j] = gcd(st[i - 1][j], st[i - 1][j + (1 << (i - 1))]);
}
}
for (int i = 2; i <= n; i++)
log2s[i] = log2s[i / 2] + 1;
auto query = [&](int l, int r) -> int
{
if (l > r)
return 0;
int lgs = log2s[r - l + 1];
return gcd(st[lgs][l], st[lgs][r - (1 << lgs) + 1]);
};
vector<array<int, 2>> pres{{0, 0}}, sufs{{n + 1, 0}};
int pre = 0, suf = 0;
for (int i = 1; i <= n; i++)
{
pre = gcd(pre, a[i]);
if (pre == pres.back()[1])
{
pres.pop_back();
}
pres.push_back({i, pre});
}
for (int i = n; i >= 1; i--)
{
suf = gcd(suf, a[i]);
if (suf == sufs.back()[1])
{
sufs.pop_back();
}
sufs.push_back({i, suf});
}
sort(pres.begin(), pres.end());
sort(sufs.begin(), sufs.end());
int ans = 0;
for (auto [poss, pregcd] : pres)
{
int posl = poss + 1;
for (auto [pos, sufgcd] : sufs)
{
int posr = pos - 1;
if (posl <= posr)
{
ans = max(ans, gcd(gcd(pregcd, sufgcd), query(posl, posr)));
}
}
}
cout << ans << endl;
}
signed main()
{
// freopen("data.in", "r", stdin);
// freopen("data.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
while (t--)
solve();
}
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 11768kb
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: 175ms
memory: 15928kb
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: 69ms
memory: 30536kb
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: 58ms
memory: 36468kb
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: 64ms
memory: 55560kb
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: 66ms
memory: 63348kb
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: 69ms
memory: 67920kb
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: 16ms
memory: 67768kb
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: 24ms
memory: 67388kb
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: 51ms
memory: 67728kb
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: 16ms
memory: 68144kb
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: 14ms
memory: 67264kb
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: 66ms
memory: 67688kb
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: 52ms
memory: 67628kb
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: 44ms
memory: 12036kb
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 792nd lines differ - expected: '2', found: '1'