fork download
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. int main() {
  5.  
  6.  
  7. int a[101], ans[4], n = 0, max1 = 0, max1n[5], max2 = 0, max2n[5], x = 0;
  8.  
  9. //inp >> n;
  10. n = 6;
  11. if (n == 4) {
  12. cout << 1 << ' ' << 2 << ' ' << 3 << ' ' << 4;
  13. return 0;
  14. }
  15.  
  16. /*for (int i = 0; i < n; i++) {
  17. inp >> a[i];
  18. }*/
  19. a[4] = 51;
  20. a[5] = 1;
  21. a[0] = 1;
  22. a[1] = 55;
  23. a[2] = 57;
  24. a[3] = 53;
  25.  
  26. for (int i = 0; i < n - 1; i++) {
  27. x = a[i] + a[i + 1];
  28. if (x > max1) {
  29. max1 = x;
  30. max1n[0] = i;
  31. max1n[1] = i + 1;
  32. }
  33. }
  34.  
  35. x = 0;
  36.  
  37. for (int i = 0; i < n - 1; i++) {
  38. x = a[i] + a[i + 1];
  39. if (i != max1n[0] && i + 1 != max1n[0] && i != max1n[1] && i + 1 != max1n[1]) {
  40. if (x > max2) {
  41. max2 = x;
  42. max2n[0] = i;
  43. max2n[1] = i + 1;
  44. }
  45. }
  46. else {//если числа пересекаются
  47. if ((i-1)>=0 && (i+2)<=n-1){//проверяю могу ли я их "сдвинуть"
  48. x = a[i-1] + a[i] + a[i+1] + a[i + 2];//смотрю сумму после сдвига
  49. if (x>max1+max2){//если она мне нравится
  50. max1n[0] = i-1;//записываю как текущий результат
  51. max1n[1] = i;
  52. max2n[0] = i + 1;
  53. max2n[1] = i + 2;
  54. }
  55. }
  56. }
  57. }
  58. cout << max1n[0] + 1 << " " << max1n[1] + 1 << " " << max2n[0] + 1 << " " << max2n[1] + 1;
  59.  
  60.  
  61. return 0;
  62. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
1 2 3 4