Chandler bé nhỏ buồn. Vẽ cho anh ta một đám mây để cổ vũ anh ta.
Lưu ý: Vẽ một đám mây sẽ không thực sự làm anh ấy vui lên.
Một vòng tròn có thể được định nghĩa là 3 tuple (x,y,r)
trong đó x
vị trí x của vòng tròn trên mặt phẳng Cartesian, y
là vị trí y của vòng tròn trên mặt phẳng Cartesian và r
là bán kính của vòng tròn. x
và y
có thể âm tính. r
luôn luôn tích cực. Đầu vào là danh sách các vòng tròn ở dạng không gian được phân tách 3-tuples. Ví dụ:
3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8
Có 3,1,1
nghĩa là "Một vòng tròn có điểm trung tâm tại 3,1
với bán kính 1. Có 3,2,1.5
nghĩa là" Một vòng tròn có điểm chính giữa 3,2
với bán kính 1,5.
Nếu chúng ta vẽ tất cả các vòng tròn đầu vào này trên một biểu đồ, nó sẽ trông như thế này (tôi chỉ bao gồm các đường lưới và nhãn cho rõ ràng; chúng không bắt buộc):
Chú ý cách tất cả các vòng tròn được gắn kết . Đó là, tất cả chúng được xếp chồng lên nhau sao cho nó tạo thành một nhóm lớn mà không có bất kỳ nhóm vòng tròn nhỏ nào tách biệt với phần còn lại. Các đầu vào được đảm bảo để được gắn kết.
Giả sử bây giờ chúng ta vẽ một đường đi quanh "đường viền" được tạo bởi các vòng tròn này, mà không có bất kỳ đường nào khác. Nó sẽ giống như vẽ đường viền của hình bóng được hình thành bởi tất cả các vòng tròn. Đám mây kết quả sẽ trông giống như thế này:
Vì vậy, đám mây này đã được hình thành bằng cách chỉ vẽ các vòng cung của các vòng tròn trong đầu vào tạo thành một đường viền, dẫn đến một hình dạng duy nhất. Nói cách khác, đám mây được hình thành bằng cách chỉ vẽ các cung không nằm trong vòng tròn khác. Chương trình của bạn sẽ nhận đầu vào ở dạng được giải thích ở trên và xuất ra một hình ảnh hiển thị đám mây kết quả. Hình dạng tổng thể của đám mây phải chính xác, nhưng tỷ lệ, màu sắc, độ dày của đường và cách nó nhìn vào các đỉnh là tùy thuộc vào bạn. Lưu ý rằng đám mây phải được nhìn thấy, vì vậy bạn không thể kéo một cái gì đó như "Chương trình này vẽ một đám mây trắng trên nền trắng", "Chương trình này vẽ một đám mây ở quy mô cực nhỏ", "Chương trình này vẽ một đám mây bằng 0 độ dày đường kẻ ", v.v. Cũng lưu ý rằng màu của đường viền phải khác với màu của màu tô hoặc nền.
Một vi dụ khac. Đầu vào:
1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7
Đầu ra:
Nếu có một "lỗ" trên đám mây, bạn cũng nên vẽ lỗ đó. Đầu vào:
0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4
Đầu ra:
Đây là một quy tắc quan trọng: chương trình của bạn phải chỉ vẽ các đường tạo thành đường viền. Điều này có nghĩa là bạn KHÔNG THỂ chỉ vẽ các vòng tròn đầy đủ, sau đó vẽ các vòng tròn nhỏ hơn một chút bằng cách tô màu trắng - bởi vì phương pháp đó vẫn vẽ các đường không tạo thành một đường viền, sau đó nó chỉ che chúng lại. Mục đích của quy tắc là ngăn chặn việc "vẽ các vòng tròn, sau đó vẽ lại các vòng tròn bằng cách điền vào màu trắng" hoặc bất cứ điều gì tương tự như vậy. Câu trả lời dự kiến sẽ thực sự tính toán nơi để vẽ những thứ trước khi vẽ nó.
Đây là mã golf, vì vậy số lượng nhân vật ngắn nhất sẽ thắng.