Soluție HackerRank pentru Filling Jars, subdomeniul Fundamentals, în Python 3. Include cerința formatată, exemple, explicația pașilor și cod sursă.
- Problemă: Filling Jars
- Domeniu: Fundamentals
- Limbaj: Python 3
Challenge: Filling Jars
Subdomeniu: Fundamentals (fundamentals)
Scor cont: 20.0 / 20
Submission status: Accepted
Submission score: 1.0
Submission ID: 464720885
Limbaj: python3
Link challenge: https://www.hackerrank.com/challenges/filling-jars/problem
Cerință
Animesh has n empty candy jars, numbered from 1 to n, with infinite capacity. He performs m operations. Each operation is described by 3 integers, a, b, and k. Here, a and b are indices of the jars, and k is the number of candies to be added inside each jar whose index lies between a and b (both inclusive).
Can you tell the average number of candies after m operations?
Example
n = 5
operations = [[1, 2, 10], [3, 5, 10]]
The array has 5 elements that all start at 0. In the first operation, add 10 to the first 2 elements. Now the array is [10, 10, 0, 0, 0]. In the second operation, add 10 to the last 3 elements (3 - 5). Now the array is [10, 10, 10, 10, 10] and the average is 10. Sincd 10 is already an integer value, it does not need to be rounded.
Function Description
Complete the *solve* function in the editor below.
*solve* has the following parameters:
- *int n:* the number of candy jars
- *int operations[m][3]:* a 2-dimensional array of operations
Returns
- *int:* the floor of the average number of canidies in all jars
Input Format
The first line contains two integers, n and m, separated by a single space.
m lines follow. Each of them contains three integers, a, b, and k, separated by spaces.
Constraints
3 ≤ n ≤ 10^7
1 ≤ m ≤ 10^5
1 ≤ a ≤ b ≤ N
0 ≤ k ≤ 10^6
Cod sursă
#!/bin/python3
import math
import os
import random
import re
import sys
def solve(n, operations):
total_candies=0
for i in operations:
initial_index=i[0]
limit_index=i[1]
jars=(limit_index-initial_index)+1
total_candies+=jars*i[2]
return((total_candies//n))
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
first_multiple_input = input().rstrip().split()
n = int(first_multiple_input[0])
m = int(first_multiple_input[1])
operations = []
for _ in range(m):
operations.append(list(map(int, input().rstrip().split())))
result = solve(n, operations)
fptr.write(str(result) + '\n')
fptr.close()
