I think this can be solved like this .
Start from the first petrol pump i.e first point in the circle . Now if the
petrol finishes befor reaching the second petrol pump that means we chose
the incorrect point . So , choose second petrol pump now. If u reach third,
fill ur tanker and move to 4th . Now if before 4th we again run out of
petrol that means our choice was incorrect . Start from 4th and so on .. If
u reach the starting point again this is the choice we need to make ..and
thats the answer . Programatically , it can be thought of Kadane Algo
..(seems to me ..not sure of algo) but I think this way we just make at most
2 pass (in case the petrol pump of choice is just before the first point )
.

Please comment in case you think its  right/wrong

Regards
Ankur

On Mon, Oct 24, 2011 at 10:15 PM, ravindra patel
<[email protected]>wrote:

> @Nitin, excellent algo.
>
> >> if S < 0 && j = i-1 return 0  // I believe this mean there is no
> solution, you might want to return -1.
>
>
> Thanks,
> - Ravindra
>
>
>
> On Mon, Oct 24, 2011 at 8:39 PM, Nitin Garg <[email protected]>wrote:
>
>> Lets say the Amount of petrol is Pi and distance to next petrol pump is Di
>> for ith petrol pump.
>>
>> start from i=1, j=1 S =0
>> while (i<=n)
>>   S += Pj - Dj;
>>   if S >= 0 && j = i-1 return i
>>   if S < 0 && j = i-1 return 0
>>   else if S >= 0 j++ mod n;
>>   else  if S < 0  j ++ mod n, i = j , S = 0;
>>
>> return 0
>>
>>
>>
>> it will traverse atmost twice, and hence O(n). no extra space required.
>>
>>
>> On Mon, Oct 24, 2011 at 4:06 AM, Aniket <[email protected]> wrote:
>>
>>> Suppose there is a circle. You have five points on that circle. Each
>>> point corresponds to a petrol pump. You are given two sets of data.
>>>
>>> 1. The amount of petrol that petrol pump will give.
>>> 2. Distance from that petrol pump to the next petrol pump.
>>>
>>>
>>> (Assume for 1 lit Petrol the truck will go 1 km)
>>>
>>> Now calculate the first point from where a truck will be able to
>>> complete the circle.
>>> (The truck will stop at each petrol pump and it has infinite
>>> capacity).
>>> Give o(n) solution. You may use o(n) extra space.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Algorithm Geeks" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/algogeeks?hl=en.
>>>
>>>
>>
>>
>> --
>> Nitin Garg
>>
>> "Personality can open doors, but only Character can keep them open"
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Algorithm Geeks" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/algogeeks?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to