Tôi đã hứa sẽ viết một chức năng đúc sẵn để xử lý các trường hợp
Đây là, tôi hy vọng nó sẽ giúp
#this the function that breaks the stream to cases
#this function is inspired by the DWNLD problem on codechef
#please use global i and countForDwnldN outside the function
#also use the repair function to repair the caserArray
def caser[inputFromN, inputForI]:
global countForDwnldN, dwnldK, caserArray, i
i = inputForI
print["caser started"]
print["i now is " + str[i]]
caserTemporalValues = ""
caserTemporalValues = inputFromN.split[]
if int[countForDwnldN] == 0:
print["countForDwnldN is 0"]
print["caserTemporalValues is " + str[caserTemporalValues]]
dwnldK = caserTemporalValues[0]
print["dwnldK is " + str[dwnldK]]
countForDwnldN = caserTemporalValues[1]
print["countForDwnldN is " + str[countForDwnldN]]
i = int[i] + 1
caserArray.append[[]]
caserArray[i - 1].append[dwnldK]
else:
print["countForDwnldN is NOT 0"]
print["countForDwnldN is " + str[countForDwnldN]]
print["i is " + str[i]]
caserArray[i - 1].append[caserTemporalValues]
countForDwnldN = int[countForDwnldN] - 1
print["caserArray is " + str[caserArray[i - 1]]]
# i = int[i] + 1
# it needs to run after the caser[]
# it repairs if necessary, [and if possible], the caserArray
# it repairs caserArray by removing the empty trailer.
def caseReapairer[howManyCasesParameter]:
if len[caserArray] > int[howManyCasesParameter]:
caserArray.pop[]
Tôi phải xin lỗi nếu nó có vẻ hơi hỗn loạn. Nó được thiết kế để được đúc sẵn
Trân trọng
Robert
Trong lập trình cạnh tranh, chúng tôi thường được cung cấp một bộ mẫu đầu vào và đầu ra dự kiến để kiểm tra giải pháp của chúng tôi. Đôi khi những đầu vào này có thể khá dài. Để tránh nhập các đầu vào theo cách thủ công hoặc sao chép, dán các đầu vào vào bảng điều khiển, bạn chỉ cần chuyển hướng std io sang một tệp. Với input[] và print[] đó, python có thể đọc và ghi vào tệp thay vì bảng điều khiển và nhà phát triển có thể tập trung hơn vào giải pháp cho vấn đề. Để thực hiện điều này, chúng ta có thể sử dụng mô-đun sys trong python
Để minh họa, giả sử rằng vấn đề là đọc một dòng các số nguyên được phân tách bằng dấu cách và in giá trị lớn nhất trong số chúng. Giải pháp sẽ giống như thế này
Trong trường hợp này, người dùng không phải nhập bất cứ thứ gì vào bảng điều khiển
input[] đọc từ đầu vào. txt
print[] ghi vào actoutputs. txt
đầu ra. txt sẽ có đầu ra như mong đợi
Nếu được yêu cầu, đầu ra. txt và đầu ra. txt có thể được so sánh ở cuối chương trình để xác minh giải pháp
Trước khi gửi giải pháp, chúng ta cần sửa bên phải của dòng 3 thành Sai. Sau đó, chương trình sẽ bắt đầu đọc và ghi vào bàn điều khiển