trang chủ / bài tập / opencomm

Giao tiếp mở

Đề bài

Mô tả

Hai người chơi, mỗi người được phát một cặp gồm hai số phân biệt trong khoảng từ 1 đến 9. Biết chắc chắn rằng hai cặp này có đúng một số chung. Hai người muốn cùng nhận ra số chung đó mà không để lộ nó cho bạn (người quan sát) biết.

Để làm việc đó, mỗi người thông báo công khai cho người kia một tập các cặp số, trong đó chắc chắn có chứa cặp thật mà mình được phát. Bạn nghe được cả hai tập thông báo này.

Người thứ nhất thông báo n cặp, người thứ hai thông báo m cặp. Dựa trên hai tập đó, hãy xác định:

  • Nếu bạn có thể chắc chắn suy ra số chung, in ra số đó.
  • Nếu bạn không suy ra được số chung, nhưng chắc chắn rằng cả hai người chơi đều biết số chung, in ra 0.
  • Ngược lại (ngay cả hai người chơi cũng không chắc chắn biết được số chung), in ra 1.

Một cặp thật (a,b) của người thứ nhất và (c,d) của người thứ hai gọi là tương thích nếu chúng có đúng một số chung. Với mỗi cặp tương thích, số chung đó là một giá trị có thể của đáp án.

Người thứ nhất, khi biết cặp thật của mình là p, sẽ chắc chắn biết số chung nếu mọi cặp trong tập của người thứ hai mà tương thích với p đều cho cùng một số chung. Người thứ hai tương tự.

Dữ liệu được đảm bảo không mâu thuẫn: luôn tồn tại ít nhất một cặp tương thích giữa hai tập.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • Dòng thứ hai chứa n cặp số nguyên (mỗi cặp là hai số trong khoảng 1 đến 9) là các cặp người thứ nhất thông báo.
  • Dòng thứ ba chứa m cặp số nguyên là các cặp người thứ hai thông báo.

Trong mỗi tập, các cặp đều phân biệt (không có cả (x,y) lẫn (y,x)), và không cặp nào chứa hai số giống nhau.

Dữ liệu ra

In ra một số nguyên: số chung nếu bạn suy ra được, 0 nếu chỉ hai người chơi biết, hoặc 1 nếu không ai chắc chắn.

Ràng buộc

  • 1n,m12
  • Mỗi số trong các cặp nằm trong khoảng từ 1 đến 9.

Ví dụ

Input Output Giải thích
2 2
1 2 3 4
1 5 3 4
1 Người một có (1,2) hoặc (3,4); người hai có (1,5) hoặc (3,4). Vì hai cặp thật phải có đúng một số chung nên không thể cả hai cùng là (3,4). Vậy người một có (1,2), người hai có (1,5), số chung là 1.
2 2
1 2 3 4
1 5 6 4
0 Hoặc (1,2)-(1,5) cho số chung 1, hoặc (3,4)-(6,4) cho số chung 4. Cả hai người chơi đều biết số chung của mình, nhưng bạn không phân biệt được 1 hay 4, nên in 0.
2 3
1 2 4 5
1 2 1 3 2 3
-1 Nếu người một có (1,2), họ không biết số chung là 1 hay 2 (người hai có thể có (1,3) hoặc (2,3)). Vì có người chơi cũng không chắc chắn, in -1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0