Đầu vào:
Danh sách / vectơ không trống trong đó mỗi phần tử giữ một giá trị / ký tự, cho biết bạn sẽ đếm lên hay xuống . Tôi sẽ sử dụng 1và -1, nhưng bạn có thể chọn bất cứ thứ gì bạn thích. Bạn chỉ có thể sử dụng hai giá trị, bạn không thể sử dụng 1,2,3...và -1,-2,-3..., tương ứng lên và xuống.
Thử thách:
Bạn sẽ sử dụng những con số trong chuỗi hình học 1, 2, 4, 8, 16, 32 ... . Mỗi khi bạn bắt đầu đếm lên hoặc xuống, bạn sẽ đếm theo số gia 1 , rồi 2 , rồi 4 , v.v. Nếu bạn thay đổi và bắt đầu đếm theo cách khác thì bạn sẽ trừ đi 1 , rồi 2 , rồi 4 và cứ thế. Đầu ra sẽ là số bạn nhận được cuối cùng.
Ví dụ:
Trong ví dụ dưới đây, dòng đầu tiên là đầu vào, dòng thứ hai là các số bạn đang đếm lên / xuống, dòng thứ ba là tổng tích lũy và dòng cuối cùng là đầu ra.
Ví dụ 1:
1 1 1 1 1 1 1 1 1 1
1 2 4 8 16 32 64 128 256 512
1 3 7 15 31 63 127 255 511 1023
1023
Ví dụ 2:
1 1 1 1 1 1 -1 -1 -1 -1 1 1 1
1 2 4 8 16 32 -1 -2 -4 -8 1 2 4
1 3 7 15 31 63 62 60 56 48 49 51 55
55
Như bạn có thể thấy, lần đầu tiên 1hoặc -1"đặt lại" giá trị chúng ta đang đếm và các chuỗi liên tiếp 1hoặc -1có nghĩa là nhân đôi giá trị.
Ví dụ 3:
-1 -1 1 1 -1 -1 -1
-1 -2 1 2 -1 -2 -4
-1 -3 -2 0 -1 -3 -7
-7
Một số trường hợp thử nghiệm bổ sung để giải thích cho một số trường hợp góc tiềm năng.
Đầu vào là trên dòng đầu tiên. Đầu ra là trên thứ hai.
1
1
-------
-1
-1
-------
-1 1 -1 1 -1 1 -1 1 -1 1 -1 1
0
Đây là môn đánh gôn, vì vậy bài nộp ngắn nhất trong mỗi ngôn ngữ sẽ thắng.
®ì2Ãxđểxì2cứu hai byte.