Advertisement
gg-master

Untitled

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