Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. /*#pragma comment(linker, "/stack:200000000")
  3. */
  4. #pragma GCC optimize("Ofast")
  5. #pragma GCC optimize("unroll-loops")
  6. #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  7. #include <set>
  8. #include <map>
  9. #include <deque>
  10. #include <cmath>
  11. #include <queue>
  12. #include <random>
  13. #include <bitset>
  14. #include <time.h>
  15. #include <string>
  16. #include <cstdio>
  17. #include <vector>
  18. #include <cstdlib>
  19. #include <iomanip>
  20. #include <cassert>
  21. #include <iostream>
  22. #include <algorithm>
  23. #include <unordered_map>
  24. #include <unordered_set>
  25. //++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++
  26. #define endl '\n'
  27. #define mp make_pair
  28. #define pbc push_back
  29. #define pob pop_back()
  30. #define empb emplace_back
  31. #define sp system("pause")
  32. #define queuel queue<long long>
  33. #define all(x) (x).begin(),(x).end()
  34. #define matrix vector<vector<ll>>
  35. #define pin(p) cin >> p.first >> p.second;
  36. #define rev(v) reverse(v.begin(),v.end());
  37. #define mx(v) max_element(v.begin(), v.end());
  38. #define mn(v) min_element(v.begin(), v.end());
  39. #define sout(s, c) for(auto i : s) cout << i << c;
  40. #define pout(p) cout << p.first << " " << p.second;
  41. #define er(v, l, r) erase(v.begin() + l, v.begin() + r);
  42. #define vin(v) for(ll i = 0; i < v.size(); ++i) cin >> v[i];
  43. #define vout(v, c) for(int i = 0; i < v.size(); ++i) cout << v[i] << c;
  44. #define pushi(v, a) for(int i = 0; i < a.size(); ++i) v.push_back(a[i]);
  45. #define sin(s, n) for(int i = 0; i < n; ++i){int a; cin >> a; s.insert(a);}
  46. #define fastio() ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0);
  47. //++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++
  48. using namespace std;
  49. //++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++
  50. typedef long long ll;
  51. typedef long double ld;
  52. typedef unsigned long long ull;
  53. //++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++
  54. const ll INF = 1000LL * 1000 * 1000 * 1000 * 1000 * 1000;
  55. const int inf = 1000 * 1000 * 1000;
  56. const ld PI = acos(-1.0);
  57. const ll mod1 = inf + 7;
  58. const ll mod2 = inf + 9;
  59. const int MAXN = 1000005;
  60. const ld EPS = 1e-11;
  61. int hp = 179;
  62. int gcd(int a, int b)
  63. {
  64. while (b)
  65. {
  66. a %= b;
  67. swap(a, b);
  68. }
  69. return a;
  70. }
  71. signed main()
  72. {
  73. fastio();
  74. int L = 8;
  75. int s = (1 << L);
  76. int m = s - 1;
  77. int n;
  78. //cin >> n;
  79. scanf("%d", &n);
  80. int a[(int)1e5 + 228];
  81. int b[(int)1e5 + 228];
  82. for (int i = 0; i < n; ++i)
  83. {
  84. scanf("%d", &a[i]);
  85. //cin>>a[i];
  86. }
  87. for (int i = 0; i < n; ++i)
  88. {
  89. b[i >>L] = __gcd(b[i >> L], a[i]);
  90. }
  91. int q;
  92. scanf("%d", &q);
  93. while (q--)
  94. {
  95. int l, r;
  96. scanf("%d%d", &l, &r);
  97. //cin >> l >> r;
  98. l--; r--;
  99. int ans = 0;
  100. for (int i = l; i <= r; ++i)
  101. {
  102. if ((i & m) == 0 && (i >> L) != (r >> L))
  103. {
  104. ans = __gcd(ans, b[i >>L]);
  105. i += m;
  106. }
  107. else
  108. {
  109. ans = __gcd(ans, a[i]);
  110. }
  111. if (ans == 1)
  112. {
  113. break;
  114. }
  115. }
  116.  
  117. printf("%d\n",ans);
  118. //cout << ans << '\n';
  119. }
  120. // sp;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement