fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const long long N = 1e6 + 5;
  4.  
  5. long long n;
  6. vector <long long> a;
  7. vector <bool> f(N, true);
  8. void sang(){
  9. f[0] = f[1] = false;
  10. for (int i = 2; i * i <= N; i++){
  11. if (f[i]){
  12. for (int j = i*i; j <= N; j+=i){
  13. f[j] = false;
  14. }
  15. }
  16. }
  17. }
  18. void subtask1(){
  19. sang();
  20. bool ok = false;
  21. for (int i = 1; i <= n; i++){
  22. if (f[a[i]] && f[a[i + 1]]){
  23. ok = true;
  24. break;
  25. }
  26. }
  27. if (!ok){
  28. cout << "NOT FOUND";
  29. return;
  30. }
  31. else{
  32. long long dis = LLONG_MIN, sum = LLONG_MIN;
  33. vector <long long> ans;
  34. vector <long long> res;
  35. for (int i = 1; i <= n; i++){
  36. if (f[a[i]]){
  37. ans.push_back(a[i]);
  38. }
  39. else{
  40. long long pos = ans.size();
  41. long long s = 0;
  42. for (long long x : ans){
  43. s = s + x;
  44. }
  45. if (pos > dis){
  46. dis = pos;
  47. sum = s;
  48. res = ans;
  49. }
  50. else if (pos == dis){
  51. if (s > sum){
  52. dis = pos;
  53. sum = s;
  54. res = ans;
  55. }
  56. else if (s < sum){
  57. continue;
  58. }
  59. else if (s == sum){
  60. continue;
  61. }
  62. }
  63. ans.clear();
  64. }
  65. }
  66. cout << res.size()<< '\n';
  67. for (long long x : res){
  68. cout << x << ' ';
  69. }
  70. }
  71. }
  72. void nhap(){
  73. cin >> n;
  74. a.resize(n + 1);
  75. for (int i = 1; i <= n; i++){
  76. cin >> a[i];
  77. }
  78. subtask1();
  79. }
  80.  
  81. #define task "test"
  82. signed main(){
  83. ios_base::sync_with_stdio(0); cin.tie(0);
  84. if (fopen(task".inp", "r")){
  85. freopen(task".inp", "r", stdin);
  86. freopen(task".out", "w", stdout);
  87. }
  88. nhap();
  89. return 0;
  90. }
  91.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
NOT FOUND