Editorial for 2162: Таємниця
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Автор, розробник, автор розбору: Iлля Пермяков
Побачимо, що суму усiх чисел в матрицi можна виразити як ~r_1 + r_2~, або ~c_1 + c_2~. Якщо цi двi суми не збiгаються, то вiдповiдi не iснує, в iншому випадку можна завжди побудувати вiдповiдь наступним чином:
Нехай ~x = T_{1,1}~. Тодi:
- ~T_{1,2} = r_1-x~.
- ~T_{2,1} = c_1-x~.
- ~T_{2,2} = r_2-T_{2,1} = r_2-c_1 + x~.
Для того щоб усi елементи були невiд'ємними, має виконуватись наступне:
- ~T_{1,1} ⩾ 0 ⇒x ⩾ 0~.
- ~T_{1,2} ⩾ 0 ⇒r_1-x ⩾ 0~.
- ~T_{2,1} ⩾ 0 ⇒c_1-x ⩾ 0~.
- ~T_{2,2} ⩾ 0 ⇒r_2-c_1 + x ⩾ 0~.
Звiдси видно, що для вiдновлення рiшення, можна встановити ~x = min(r_1, c_1, r_2-c_1)~, а потiм, за допомогою x, вiдновити усi iншi елементи матрицi.
r1, r2 = map(int, input().split()) c1, c2 = map(int, input().split()) if r1 + r2 != c1 + c2: print("No") exit() L = max(0, r1 - c2, c1 - r2) U = min(r1, c1) a = L b = r1 - a c = c1 - a d = r2 - c print("Yes") print(a, b) print(c, d)
Коментарі