Advertisement
gg-master

just_for_you

Mar 20th, 2022
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #pragma warning(disable: 4996)
  5.  
  6. int main() {
  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.  
  18. int indexes[20];
  19. // инициализируем для удаления мусора
  20. for (int i = 0; i < 20; i++) {
  21. indexes[i] = -1;
  22. }
  23.  
  24. // Ввести длину массива и проверить ее корректность
  25. scanf("%d", &length);
  26. if (length < 3 || length > 20) // вне диапазона [3, 20]
  27. {
  28. printf("invalid input data\n");
  29. return 0;
  30. }
  31.  
  32. // Ввести элементы массива и проверить их корректность
  33.  
  34. for (int i = 0; i < length; i++) {
  35. scanf("%d", &A[i]);
  36. if (A[i] < 0 || A[i] > 1000) // вне диапазона [0, 1000]
  37. {
  38. printf("invalid input data");
  39. return 0;
  40. }
  41. }
  42.  
  43. for (int i = 0; i < length; i++) {
  44. sum_right += A[i];
  45. }
  46.  
  47. diff = sum_right;
  48. for (int i = 0; i < length; i++) {
  49. sum_right -= A[i];
  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. diff = abs(sum_left - sum_right);
  54. indexes[i] = diff;
  55. }
  56. sum_left += A[i];
  57. }
  58. for (int i = 0; i < length; i++) {
  59. if (indexes[i] == diff)
  60. printf("%d ", i);
  61. }
  62. // printf("Diff: %d", diff);
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement