Nhiều loại tàu khác nhau tồn tại, từ đường ray bằng gỗ như Brio, đến điều khiển hoàn toàn kỹ thuật số bản sao kim loại nhỏ hoàn hảo của tàu thật, nhưng tất cả chúng đều yêu cầu đường ray được thiết kế, lý tưởng nhất là sử dụng càng nhiều mảnh của bạn càng tốt.
Vì vậy, nhiệm vụ của bạn là xác định xem, đầu vào của các phần có sẵn, có thể xây dựng một mạch kín hoàn chỉnh bằng cách sử dụng tất cả các phần tử hay không, và nếu không, sẽ còn lại bao nhiêu phần từ mạch tối đa có thể.
Vì đây là một bộ xe lửa được đơn giản hóa, chỉ có 3 yếu tố: đường cong lớn, đường cong nhỏ và đường thẳng. Tất cả đều dựa trên một lưới vuông:
- "Đường cong lớn" là một góc 90 độ, bao gồm 2 đơn vị ở mỗi chiều
- "Đường cong nhỏ" là một góc 90 độ, bao phủ một đơn vị theo mỗi hướng
- "Thẳng" là một phần tử thẳng, dài 1 đơn vị
Điều này có nghĩa là mạch tối thiểu có thể được hình thành từ 4 đường cong nhỏ - đó là một vòng tròn, bán kính 1 đơn vị. Điều này có thể được mở rộng bằng cách thêm các cặp yếu tố thẳng để tạo thành hình bầu dục khác nhau. Có các mạch khác có thể bằng cách thêm nhiều đường cong hoặc trộn các loại đường cong.
Tập đoàn tàu này không bao gồm bất kỳ mối nối hoặc phương thức nào để các tuyến đường giao nhau, do đó, hai yếu tố không hợp lệ để kết nối với cùng một đầu của một yếu tố khác (không có hình dạng Y) hoặc giao nhau (không có hình dạng X) . Ngoài ra, đó là một bộ xe lửa, do đó, bất kỳ đội hình nào không cho phép tàu đi qua đều không hợp lệ: các ví dụ bao gồm các cuộc gặp gỡ căng thẳng ở góc 90 độ (luôn phải có một đường cong giữa các đường thẳng vuông góc) và đường cong gặp nhau ở góc 90 độ (đường cong phải chảy).
Bạn cũng muốn sử dụng càng nhiều mảnh càng tốt, bỏ qua chúng là loại gì, vì vậy bạn sẽ luôn chọn một mạch có nhiều bit hơn. Cuối cùng, bạn chỉ có một tàu, vì vậy mọi giải pháp dẫn đến nhiều mạch đều không được chấp nhận .
Đầu vào
Hoặc là một mảng gồm ba số nguyên, tất cả đều lớn hơn hoặc bằng 0, tương ứng với số lượng đường cong lớn, đường cong nhỏ và sức căng có sẵn hoặc các tham số được truyền cho chương trình của bạn, theo cùng một thứ tự.
Đầu ra
Một số tương ứng với số phần còn lại khi mạch tối đa có thể cho các phần tử được cung cấp được xây dựng.
Dữ liệu kiểm tra
Minimal circuit using big curves
Input: [4,0,0]
Output: 0
Slightly more complicated circuit
Input: [3,1,2]
Output: 0
Incomplete circuit - can't join
Input: [3,0,0]
Output: 3
Incomplete circuit - can't join
Input: [3,1,1]
Output: 5
Circuit where big curves share a centre
Input: [2,2,0]
Output: 0
Bigger circuit
Input: [2,6,4]
Output: 0
Circuit where both concave and convex curves required
Input: [8,0,0] or [0,8,0]
Output: 0
Circuit with left over bit
Input: [5,0,0] or [0,5,0]
Output: 1
Ghi chú
- 2 dây đai và một đường cong nhỏ tương đương với một đường cong lớn, nhưng sử dụng nhiều mảnh hơn, vì vậy được ưu tiên - không bao giờ là tình huống mà sự kết hợp này bị bỏ lại, nếu có bất kỳ đường cong lớn nào trong mạch
- 4 đường cong nhỏ thường có thể được hoán đổi cho 4 điểm căng, nhưng nếu không thì điều này sẽ khiến mạch tự giao nhau
- Tập hợp tàu cũng được lý tưởng hóa - các phần tử theo dõi chiếm chiều rộng được hiển thị, do đó, nó có giá trị cho các đường cong đi qua một ô vuông lưới mà không giao nhau, trong một số trường hợp. Lưới chỉ xác định kích thước phần tử. Đặc biệt, hai đường cong lớn có thể được đặt sao cho ô vuông lưới ở phía trên bên trái của sơ đồ ví dụ cũng sẽ là hình vuông dưới cùng bên phải của một đường cong lớn khác chạy từ trái sang trên (với sơ đồ hiển thị một đường chạy từ phải xuống dưới)
- Một đường cong nhỏ có thể vừa với khoảng trống dưới một đường cong lớn (ô vuông dưới cùng bên phải ở trên). Một đường cong lớn thứ hai cũng có thể sử dụng không gian đó, chuyển một đường ngang và xuống từ đường đầu tiên
- Một đường cong nhỏ không thể vừa trên cùng một không gian lưới như bên ngoài của một đường cong lớn - chủ yếu là do không có cách nào để kết nối với nó mà không giao nhau bất hợp pháp


[5,0,0]hoặc[0,5,0]sẽ được1. Đúng không? Bạn có thể thêm một trường hợp thử nghiệm như vậy?