#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int a1, a2, a3;
int b1, b2, b3;
int k, w;
printf("Введите k и w: ");
scanf_s("%d%d", &k, &w);
printf("%d %d\n", k, w);
scanf_s("%d%d%d%d%d%d", &a1, &b1, &a2, &b2, &a3, &b3);
if ((a1 <= 10 && a1 >= 1) || (a2 <= 10 && a2 >= 1) || (a3 <= 10 && a3 >= 1) || (b1 <= 15 && b1 >= 1) || (b2 <= 15 && b2 >= 1) || (b3 <= 15 && b3 >= 1)) {
printf("1 <= a <= 10 и 1 <= b <= 15");
return 0;
}
if ((a1 + a2 + a3) > w) {
printf("Error sum a > w\n");
printf("NO");
return 0;
} else
if ((b1 + b2 + b3) > k) {
printf("Error sum b > k\n");
printf("NO");
return 0;
} else
if (k < 1 || k > 15) {
printf("Error k\n");
printf("NO");
return 0;
} else
if (w < 1 || w > 30) {
printf("Error w\n");
printf("NO");
return 0;
} else
printf("YES");
return 0;
}
Сместиться на (2, 5)
Сместиться на (4, -1)
Если речь идет про координаты начала и конца, это можно соединить в одно движение, описывающее итоговое изменение координат, 2 + 4 и 5 - 1:
Сместиться на (6, 4)
Повторить 5 раз, будет:
Сместиться на (30, 20)
Были еще первый и последний шаги вне цикла:
Сместиться на (4, -2)
Сместиться на (-6, -7)
↓
Сместиться на (30 + 4 - 6, 20 - 2 - 7)
В итоге дошел до точки (28, 11)
Чтобы вернуться обратно, надо
Сместиться на (-28, -11)