JOI 2007 - Quality Inspection

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 800 (p) Thời gian: 5.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Bạn phụ trách quản lý chất lượng tại một nhà máy sản xuất máy móc. Mỗi chiếc máy cần ba linh kiện: một bộ nguồn, một động cơ và một dây cáp. Nhà máy có \(a\) bộ nguồn mang số từ \(1\) đến \(a\), \(b\) động cơ mang số từ \(a+1\) đến \(a+b\), và \(c\) dây cáp mang số từ \(a+b+1\) đến \(a+b+c\).

Một số linh kiện có thể bị hỏng. Để tìm hiểu linh kiện nào bị hỏng và linh kiện nào hoạt động bình thường, nhà máy tiến hành kiểm tra bằng cách nối một bộ nguồn, một động cơ và một dây cáp, rồi cho máy chạy thử. Nếu cả ba linh kiện đều hoạt động bình thường, máy chạy đúng và lần kiểm tra được đánh giá là đạt. Nếu có ít nhất một linh kiện bị hỏng, máy không chạy đúng và lần kiểm tra được đánh giá là không đạt. Máy đòi hỏi độ chính xác cực cao để hoạt động, nên không có trường hợp linh kiện bị hỏng mà máy tình cờ vẫn chạy đúng.

Bạn được cung cấp danh sách kết quả kiểm tra. Mỗi kết quả cho biết số hiệu của bộ nguồn, động cơ và dây cáp đã sử dụng, cùng với việc lần kiểm tra đó đạt hay không đạt.

Yêu cầu

Dựa trên tất cả kết quả kiểm tra, phân loại từng linh kiện vào một trong ba loại: chắc chắn bị hỏng, chắc chắn hoạt động bình thường, hoặc chưa thể xác định là hỏng hay bình thường.

Dữ liệu vào

Đọc từ đầu vào chuẩn:

  • Dòng thứ nhất chứa ba số nguyên \(a,b,c\), lần lượt là số bộ nguồn, số động cơ và số dây cáp.
  • Dòng thứ hai chứa số nguyên \(N\) là số lần kiểm tra trong danh sách.
  • Mỗi dòng trong \(N\) dòng tiếp theo chứa bốn số nguyên \(i,j,k,r\): lần kiểm tra sử dụng bộ nguồn \(i\), động cơ \(j\) và dây cáp \(k\); \(r=1\) biểu thị kết quả đạt, còn \(r=0\) biểu thị kết quả không đạt.

Các số trên cùng một dòng được ngăn cách bởi một dấu cách.

Dữ liệu ra

Ghi ra đầu ra chuẩn \(a+b+c\) dòng. Dòng thứ \(i\) ứng với linh kiện mang số \(i\) (\(1\le i\le a+b+c\)), chứa:

  • \(0\) nếu có thể khẳng định linh kiện đó bị hỏng từ các kết quả kiểm tra.
  • \(1\) nếu có thể khẳng định linh kiện đó hoạt động bình thường từ các kết quả kiểm tra.
  • \(2\) nếu các kết quả kiểm tra chưa đủ để xác định linh kiện đó bị hỏng hay hoạt động bình thường.

Ràng buộc

  • \(1\le a,b,c\le 100\).
  • \(1\le N\le 1000\).
  • Trong mỗi lần kiểm tra: \(1\le i\le a\), \(a+1\le j\le a+b\), \(a+b+1\le k\le a+b+c\)\(r\in\{0,1\}\).

Phân nhóm

  • \(5\) bộ dữ liệu được chấm độc lập, với tổng điểm tối đa là \(20\).

Ví dụ

Ví dụ 1

Input
2 2 2
4
2 4 5 0
2 3 6 0
1 4 5 0
2 3 5 1
Output
2
1
1
0
1
0

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: