Shouldnt we have taken the minimum of all the options to get the minimum rounds required
Why have we taken max of all the rounds?
hey @harshgup01 check this
base case : if number of jobs of all processors is not divisible by n print -1.
else
find average.
lets say a[i] is the list of jobs assigned to i th processor.
- from each job a[i] do a[i] - avg. if a[i] is +ve it means it has to export this many jobs to neighbors and -ve means it has to import this may jobs from neighbors .
- for all i do a[i] =a[i] + a[i - 1] i.e. find sum till i.
- find max absolute value from a[i] and print it.
explanation:
lets say a[i] after performing step 1 is: [ 2 ,-5, 7, -4]
after performing step 2 array will become [2, -3, 4, 0]
what it means is that first processor has 2 extra jobs and it can export it in 2 round.
2nd processor has 5 jobs to import. It can take 2 from 1st processor, it has still 3 more to import. and it can be done in 3 rounds.
3rd processor has 7 jobs to export. It can export 3 to previous processor in 3 round and it has remaining 4 jobs, which can be exported in 4 rounds to the next processor.
4th processor has to import 4 jobs and it can import it from previous processor in 4 rounds. Hence max rounds is the max absolute value from a[i].
I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.
On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.