QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#629189 | #9426. Relearn through Review | WaO_o | WA | 1ms | 5904kb | C++20 | 1.5kb | 2024-10-11 08:33:16 | 2024-10-11 08:33:16 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define deg( x ) cerr<<""#x"="<<x<<endl
#define endl '\n'
const int N=6e5+10;
int A[ N ];
int up[ N ];
int ne[ N ];
int gcd( int a , int b ){
if( b==0 ) return a;
return gcd( b , a%b );
}
void solve(){
int n,k;
cin>>n>>k;
for( int i=1; i<=n; i++ ){
cin>>A[ i ];
}
int ans=0;
for( int i=1; i<=n; i++ ){
up[ i ]=gcd( up[ i-1 ] , A[ i ] );
}
ne[ n+1 ]=0;
for( int i=n; i>=1; i-- ){
ne[ i ]=gcd( ne[ i+1 ] , A[ i ] );
}
vector<int> V;
for( int i=n+1; i>=1; i-- ){
if( ne[ i ]!=ne[ i-1 ] ) V.emplace_back( i );
}
up[ n+1 ]=0;
for( int l=0; l<=n; l++ ){
if( up[ l ]<=ans ) break;
if( up[ l ]!=up[ l+1 ] ){
for( int bt=0; bt<(int)V.size(); bt++ ){
//cerr<<"gg"<<endl;
int r=V[ bt ];
if( ne[ r ]<=ans ) break;
ans=max( ans , gcd( up[ l ] , ne[ r ] ) );
if( r<=l ) break;
int cnt=up[ l ];
for( int i=l+1; i<r; i++ ) cnt=gcd( cnt , A[ i ]+k );
cnt=gcd( cnt , ne[ r ] );
ans=max( ans , cnt );
}
}
}
cout<<ans<<endl;
}
signed main() {
ios::sync_with_stdio( 0 );
cin.tie( 0 ); cout.tie( 0 );
int T=1;
cin>>T;
while( T-- ){
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 5904kb
input:
2 6 2 5 3 13 8 10 555 3 0 3 6 9
output:
0 0
result:
wrong answer 1st lines differ - expected: '5', found: '0'