Advertisement
Saleh127

Hackerearth gcd choice.

Oct 7th, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int t; cin>>t; for(int cs=1;cs<=t;cs++)
  5. int main()
  6. {
  7. ios_base::sync_with_stdio(0);
  8. cin.tie(0);cout.tie(0);
  9.  
  10. ll n;
  11. cin>>n;
  12. ll a[n];
  13. for(ll i=0;i<n;i++)
  14. {
  15. cin>>a[i];
  16. }
  17. ll p[n]={0},s[n]={0};
  18. ll x=0;
  19.  
  20. for(ll i=0;i<n;i++)
  21. {
  22. p[i]=__gcd(a[i],x);
  23. x=p[i];
  24. }
  25. x=0;
  26. for(ll i=n-1;i>=0;i--)
  27. {
  28. s[i]=__gcd(a[i],x);
  29. x=s[i];
  30. }
  31. ll ans=0;
  32.  
  33. for(ll i=0;i<n;i++)
  34. {
  35. if(i==0) ans=max(ans,s[i]);
  36. else if(i==n-1)
  37. {
  38. ans=max(ans,p[n-2]);
  39. }
  40. else
  41. {
  42. ans=max(ans,__gcd(p[i-1],s[i+1]));
  43. }
  44. }
  45. cout<<ans<<endl;
  46.  
  47. return 0;
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement