Bánh sinh Nhật (Birthday Chocolate)

Lily có một thanh sô cô la mà cô ấy muốn chia sẻ với Ron cho sinh nhật của anh ấy. Mỗi hình vuông có một số nguyên trên đó. Cô quyết định chia sẻ một đoạn liền kề của thanh được chọn sao cho độ dài của đoạn đó khớp với tháng sinh của Ron và tổng số nguyên trên các ô vuông bằng với ngày sinh của anh ta. Bạn phải xác định có bao nhiêu cách cô ấy có thể chia sô cô la.

Hãy coi thanh sô cô la như một mảng hình vuông , s = [2,2,1,3,2] Cô ấy muốn tìm phân đoạn tổng kết cho ngày sinh của Ron, d = 4 với chiều dài bằng tháng sinh của mình, m = 2 Trong trường hợp này, có hai phân khúc đáp ứng tiêu chí của cô: [2,2] và [1,3]

Mô tả chức năng
Hoàn thành chức năng sinh nhật trong trình chỉnh sửa dưới đây. Nó sẽ trả về một số nguyên biểu thị số cách mà Lily có thể chia thanh sô cô la.

sinh nhật có (các) tham số sau:

s: một mảng các số nguyên, các số trên mỗi hình vuông của sô cô la
d: một số nguyên, ngày sinh của Ron
m: một số nguyên, tháng sinh của Ron

Định dạng đầu vào
Dòng đầu tiên chứa một số nguyên n số lượng hình vuông trong thanh sô cô la.
Dòng thứ hai chứa n số nguyên khác nhau s[i] những con số trên hình vuông sô cô la 0 <= i < n
Dòng thứ ba chứa hai số nguyên được phân tách bằng dấu cách, d và m Ngày sinh của Ron và tháng sinh của anh ấy.

Những ràng buộc
1<= n <= 100
1<= s[i] <= 5 và 0 <= i < n
1 <= d <= 31
1 <= m <= 12

Định dạng đầu ra
In một số nguyên biểu thị tổng số cách mà Lily có thể chia phần thanh sô cô la của mình để chia sẻ với Ron.

Nhập mẫu 0
5
1 2 1 3 2
3 2

Kết quả mẫu 0
2

Giải thích 0
Lily muốn tặng Ron m = 2 hình vuông tổng hợp để d = 3 Hai phân khúc sau đáp ứng các tiêu chí:

Đầu vào mẫu 1
6
1 1 1 1 1 1
3 2

Kết quả mẫu 1
0

Giải thích 1
Lily chỉ muốn tặng Ron m = 2 các hình vuông liên tiếp của sô cô la có số nguyên tổng d = 3 Không có phần nào có thể đáp ứng các ràng buộc này:

Vì vậy, chúng tôi in 0 như câu trả lời của chúng tôi

Đầu vào mẫu 2

1
4
4 1

Kết quả mẫu 2
1

Giải thích 2
Lily chỉ muốn tặng Ron m = 1 hình vuông sô cô la với giá trị nguyên d = 4 Bởi vì hình vuông duy nhất của sô cô la trong thanh thỏa mãn ràng buộc này, chúng tôi in 1 như câu trả lời của chúng tôi

 php

<?php

// Complete the birthday function below.
function birthday($s, $d, $m) {
$counter = 0;
for($i = 0; $i <= sizeof($s) - $m; $i++) {
$sum = $s[$i];
for($j = $i + 1; $j < $i + $m; $j++) {
$sum += $s[$j];
}
if($sum == $d)
$counter++;
}
return $counter;
}

$fptr = fopen(getenv("OUTPUT_PATH"), "w");

$n = intval(trim(fgets(STDIN)));

$s_temp = rtrim(fgets(STDIN));

$s = array_map('intval',
preg_split('/ /', $s_temp, -1, PREG_SPLIT_NO_EMPTY));

$dm = explode(' ', rtrim(fgets(STDIN)));

$d = intval($dm[0]);

$m = intval($dm[1]);

$result = birthday($s, $d, $m);

fwrite($fptr, $result . "\n");

fclose($fptr);



Comments

Popular posts from this blog

Intro to Tutorial Challenges

Mini-Max Sum