PTIT121L - Ghép hình

Link Sub: http://www.spoj.com/PTIT/problems/PTIT121L/
Người Gửi: Dương Lee

  • Problem:

Cho 3 hình chữ nhật có kích thước tương ứng là: a[i]×b[i] (i=1,2,3). Trong đó a[i],b[i] là các số nguyên dương không quá 10^9. Hỏi 3 hình chữ nhật trên có thể ghép thành một hình vuông không? Nếu ghép được cho biết độ dài cạnh hình vuông đó, ngược lại ghi số 0.

Input
Gồm 3 dòng, mỗi dòng ghi 2 số nguyên dương là kích thước của một hình chữ nhật
Output
Một dòng duy nhất là đáp số của bài toán
Example:
Input
1 6
6 2
3 6
Output:
6

Input
1 6
6 2
2 4
Output:
0
  • Solution:

- Sắp xếp từng cặp (các phần tử trong cặp tăng dần): rộng dài - Có hai cách để ghép: C1: 3 cái chồng lên nhau; C2: 2 cái chập lại và ghép với 1 cái còn lại tạo thành 3 phần phân biệt. - C1: thì dễ rồi chỉ cần xét điều kiện sum_Rộng=dài; - C2: ở code này mình dùng sinh hoán vị 3 để sinh các trường hợp đặt hcn đặt vào các vị trí (các bạn có thể dùng if xét các trường hợp). Lưu ý: phải thay đổi dài rộng lẫn nhau cho mỗi hcn để đảm bảo có tất cả trường hợp được sinh. Xem hình ảnh để rõ hơn:


  • Code:

C++:



JAVA:


Share this

Related Posts

Previous
Next Post »