fork download
  1. #include<bits/stdc++.h>
  2. #define f1(i, n) for(int i=1;i<=n;++i)
  3. #define f0(i, n) for(int i=0;i<n;++i)
  4. #define ull unsigned long long
  5. #define ll long long
  6. #define rev(a) reverse(a.begin(),a.end())
  7. #define all(x) x.begin(),x.end()
  8. #define so(A, n) sort(A+1, A+n+1)
  9. using namespace std;
  10. const int maxn = 1e6 + 1;
  11. const int N = 5e5 + 1;
  12. const ll mod = 1e18;
  13. int D[maxn], A[maxn];
  14. void Sieve() {
  15. D[0] = D[1] = 1;
  16. for (int i = 2; i <= sqrt(maxn); ++i) {
  17. if (D[i] == 0) {
  18. for (int j = i; j <= maxn / i; ++j) {
  19. D[i * j] = 1;
  20. }
  21. }
  22. }
  23. }
  24. int main()
  25. {
  26. ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  27. Sieve();
  28. int n, c;
  29. cin >> n >> c;
  30. for (int i = 1; i <= n; ++i) {
  31. cin >> A[i];
  32. }
  33. int cnt[n + 1] = {}, max_div = 0;
  34. for (int i = 1; i <= n; ++i) {
  35. int a = A[i];
  36. for (int j = 1; j <= sqrt(a); ++j) {
  37. if (a % j == 0) {
  38. if (D[j] == 0) {
  39. cnt[i]++;
  40. }
  41. if (a / j != j) {
  42. if (D[a / j] == 0) cnt[i]++;
  43. }
  44. }
  45. }
  46. max_div = max(max_div, cnt[i]);
  47. }
  48. if (c == 1) {
  49. f1(i, n) {
  50. if (cnt[i] == max_div) {
  51. cout << A[i] << " ";
  52. }
  53. }
  54. return 0;
  55. }
  56. else {
  57. vector<int> v;
  58. int maxL = 0;
  59. f1(i, n) {
  60. if (cnt[i] == max_div) {
  61. v.push_back(i);
  62. }
  63. }
  64. for (int i = 0; i < v.size(); ++i) {
  65. // cout<<v[i]<<" ";
  66. if (v[i] == 1) {
  67. maxL = max(maxL, (v.size() == 1 ? n : v[i + 1] - 1));
  68. }
  69. else if (v[i] == n) {
  70. if (i == 0) {
  71. maxL = n;
  72. }
  73. else {
  74. maxL = max(maxL, (v.size() == 1 ? n : n - v[i - 1]));
  75. }
  76. }
  77. else {
  78. maxL = max({maxL, v[i] - (i == 0 ? 0 : v[i - 1]), (i == v.size() - 1 ? n : v[i + 1]) - v[i]});
  79. }
  80. }
  81. cout << maxL;
  82. }
  83.  
  84. }
Success #stdin #stdout 0.01s 9712KB
stdin
Standard input is empty
stdout
1