Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #pragma warning(disable: 4996)
- int main()
- {
- // Длина массива
- int length = 0;
- // Массив
- int A[20];
- int result_indexes[20];
- // Сумма левых элементов
- int sum_left = 0;
- // Сумма правых элементов
- int sum_right = 0;
- // Разница
- int diff = 99999999;
- int index = 0;
- int k = 0;
- int n = 0;
- // Ввести длину массива и проверить ее корректность
- scanf("%d", &length);
- if (length < 3 || length > 20) // вне диапазона [3, 20]
- {
- printf("invalid input data");
- return 0;
- }
- // Ввести элементы массива и проверить их корректность
- for (int i = 0; i < length; i++)
- {
- scanf("%d", &A[i]);
- if (A[i] < 0 || A[i] > 1000) // вне диапазона [0, 1000]
- {
- printf("invalid input data");
- return 0;
- }
- }
- for (int m = 1; m < length; m++)
- {
- sum_right += A[m];
- }
- diff = sum_right;
- for (int m = 1; m <= length; m++)
- {
- // Сравнить разность разность левого и правого концов с diff и найти наименьшее значение
- // printf("Left: %d Right: %d Diff: %d\n", sum_left, sum_right, abs(sum_left - sum_right));
- if (abs(sum_left - sum_right) < diff)
- {
- diff = abs(sum_left - sum_right);
- result_indexes[m - 1] = diff;
- }
- else
- {
- if (abs(sum_left - sum_right) == diff)
- {
- result_indexes[m - 1] = diff;
- }
- }
- sum_right -= A[m];
- sum_left += A[m - 1];
- }
- for (int i = 0; i < length; i++)
- {
- if (result_indexes[i] == diff)
- printf("%d ", i);
- }
- // printf("Diff: %d", diff);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement