Advertisement
gg-master

Untitled

Mar 20th, 2022
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #pragma warning(disable: 4996)
  4.  
  5. int main()
  6. {
  7. // Длина массива
  8. int length = 0;
  9. // Массив
  10. int A[20];
  11.  
  12. int result_indexes[20];
  13.  
  14. // Сумма левых элементов
  15. int sum_left = 0;
  16. // Сумма правых элементов
  17. int sum_right = 0;
  18. // Разница
  19. int diff = 99999999;
  20.  
  21. int index = 0;
  22. int k = 0;
  23. int n = 0;
  24.  
  25. // Ввести длину массива и проверить ее корректность
  26. scanf("%d", &length);
  27. if (length < 3 || length > 20) // вне диапазона [3, 20]
  28. {
  29. printf("invalid input data");
  30. return 0;
  31. }
  32.  
  33. // Ввести элементы массива и проверить их корректность
  34.  
  35. for (int i = 0; i < length; i++)
  36. {
  37. scanf("%d", &A[i]);
  38. if (A[i] < 0 || A[i] > 1000) // вне диапазона [0, 1000]
  39. {
  40. printf("invalid input data");
  41. return 0;
  42. }
  43. }
  44. for (int m = 1; m < length; m++)
  45. {
  46. sum_right += A[m];
  47. }
  48.  
  49. diff = sum_right;
  50. for (int m = 1; m <= length; m++)
  51. {
  52.  
  53.  
  54. // Сравнить разность разность левого и правого концов с diff и найти наименьшее значение
  55. // printf("Left: %d Right: %d Diff: %d\n", sum_left, sum_right, abs(sum_left - sum_right));
  56. if (abs(sum_left - sum_right) < diff)
  57. {
  58. diff = abs(sum_left - sum_right);
  59. result_indexes[m - 1] = diff;
  60. }
  61. else
  62. {
  63. if (abs(sum_left - sum_right) == diff)
  64. {
  65. result_indexes[m - 1] = diff;
  66. }
  67. }
  68. sum_right -= A[m];
  69. sum_left += A[m - 1];
  70. }
  71. for (int i = 0; i < length; i++)
  72. {
  73. if (result_indexes[i] == diff)
  74. printf("%d ", i);
  75. }
  76. // printf("Diff: %d", diff);
  77. }
  78.  
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement