Nộp bài  Các bài nộp  Làm tốt nhất  Về danh sách bài 
CTAIN  Containers 
We are given n containers, where 1 <= n <= 4. At
the beginning all of them are full of water. The liter capacity of the ith
container is a natural number o_{i }satisfying
inequalities 1 <= o_{i} <= 49.
Three kinds of moves can be made:
 Pouring the whole content of one container into another. This move can be made unless there is too little room in the second container.
 Filling up one container with part of the water from another one.
 Pouring away the whole content of one container into a drain.
Task
Write a program that for each test case:
 Reads the number of containers n, the capacity of each container and the requested final amount of water in each container.
 Verifies, whether there exist a series of moves which leads to the requested final situation, and if there is one, the program computes the minimal number of moves leading to the requested situation,
 Writes the result. The result should be the minimal number of moves leading to the requested final situation, or one word "NO" if there is no such a sequence of moves.
Input
One integer in the first line, stating the number of test cases, followed by a blank line. There will be not more than 20 tests.
For each test case, at the first line, one positive integer n is written, n <= 4, this is the number of containers. There are n positive integers written in the second line. These are the capacities of the containers (the ith integer o_{i} denotes the capacity if the ith container,1 <= o_{i} <= 49). In the third line there are written n numbers. These are the requested final volumes of water in the containers (the ith integer w_{i} denotes the requested final volume of water in the ith container, 0 <= w_{i} <= o_{i}). All integers in the second and the third line are separated by single spaces.
The test cases will be separated by a single blank line.
Output
For each test case : write one integer  the minimal number of moves which lead to the requested final situation or write only one word "NO" if it is not possible to reach the requested final situation making only allowed moves.
Example
Input: 2 3 3 5 5 0 0 4 2 20 25 10 16 Output: 6 NO
Được gửi lên bởi:  ThanhVy Hua 
Ngày:  20041224 
Thời gian chạy:  5s 
Giới hạn mã nguồn:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Ngôn ngữ cho phép:  Tất cả ngoại trừ: GOSU NODEJS PERL6 PYPY RUST SED VB.NET 
Nguồn bài:  3rd Polish Olympiad in Informatics, stage 1 
hide comments
20170913 07:29:27
Code AC: http://shink.in/luBqA 

20170908 18:41:41 Sơn Tùng MTP
haha 