Bruce is an inmate at a large prison, and like most of the other prisoners, he smokes cigarettes. During his time in the prison, Bruce finds that if he has 3 cigarette butts, he can cram them together and turn them into 1 full cigarette. Whenever he smokes a cigarette, it turns into a cigarette butt.
One day, Bruce is in his cell talking to one of his cellmates, Steve.
"I really want to smoke 5 cigarettes today, but all I have are these 10 cigarette butts," Bruce tells Steve. "I'm not sure that will be enough."
"Why don't you borrow some of Tom's cigarette butts?" asks Steve, pointing over to a small pile of cigarette butts on the bed of their third cellmate, Tom, who is out for the day on a community service project.
"I can't," Bruce says. "Tom always counts exactly how many cigarette butts are in his pile, and he'd probably kill me if he noticed that I had taken any."
However, after thinking for a while, Bruce figures out a way that he can smoke 5 cigarettes without angering Tom. What is his plan?
Bruce takes 9 of his 10 cigarette butts and turns them into 3 cigarettes total (remember, 3 cigarette butts can be turned into 1 cigarette). He smokes all three of these, and now he has 4 cigarette butts.
He then turns 3 of the 4 cigarette butts into another cigarette and smokes it. He has now smoked 4 cigarettes and has 2 cigarette butts.
For the final step, he goes and borrows one of Tom's cigarette butts. With this cigarette butt plus the 2 he already has, he is able to make his 5th cigarette to smoke. After smoking it, he is left with 1 cigarette butt, which he puts back in Tom's pile so that Tom won't find anything missing.
See also best riddles or new riddles.logic
What is better than presence of mind in an automobile accident?
Absence of body.funnylogicshort
A woman depended on a public telephone to make her calls, but it was usually out of order. Each day she reported this to the phone company, but nothing was done. Finally she came up with a fib that she told the phone company. The phone was fixed the next day. What did she tell them?
She told them that people were making calls without having to pay.interviewlogicmath
Four people need to cross a rickety bridge at night. Unfortunately, they have only one torch and the bridge is too dangerous to cross without one. The bridge is only strong enough to support two people at a time. Not all people take the same time to cross the bridge. Times for each person: 1 min, 2 mins, 7 mins and 10 mins. What is the shortest time needed for all four of them to cross the bridge?
It is 17 mins.
1 and 2 go first, then 1 comes back. Then 7 and 10 go and 2 comes back. Then 1 and 2 go again, it makes a total of 17 minutes.cleanlogicwhat am I
I’m teary-eyed but never cry,
silver-tongued, but never lie.
double-winged, but never fly,
air-cooled, but never dry.
What am I?
Mercury. The element looks shiny, silver, and is wet. The god Mercury has two wings but only uses them to run.logicmath
Two words are anagrams if and only if they contain the exact same letters with the exact same frequency (for example, "name" and "mean" are anagrams, but "red" and "deer" are not).
Given two strings S1 and S2, which each only contain the lowercase letters a through z, write a program to determine if S1 and S2 are anagrams. The program must have a running time of O(n + m), where n and m are the lengths of S1 and S2, respectively, and it must have O(1) (constant) space usage.
First create an array A of length 26, representing the counts of each letter of the alphabet, with each value initialized to 0. Iterate through each character in S1 and add 1 to the corresponding entry in A. Once this iteration is complete, A will contain the counts for the letters in S1. Then, iterate through each character in S2, and subtract 1 from each corresponding entry in A. Now, if the each entry in A is 0, then S1 and S2 are anagrams; otherwise, S1 and S2 aren't anagrams.
Here is pseudocode for the procedure that was described:
def areAnagrams(S1, S2)
A = new Array(26)
for each character in S1
arrayIndex = mapCharacterToNumber(character) //maps "a" to 0, "b" to 1, "c" to 2, etc...
A[arrayIndex] += 1
for each character in S2
arrayIndex = mapCharacterToNumber(character)
A[arrayIndex] -= 1
for (i = 0; i < 26; i++)
if A[i] != 0
A train leaves from Halifax, Nova Scotia heading towards Vancouver, British Columbia at 120 km/h. Three hours later, a train leaves Vancouver heading towards Halifax at 180 km/h. Assume there's exactly 6000 kilometers between Vancouver and Halifax. When they meet, which train is closer to Halifax?
Both trains would be at the same spot when they meet therefore they are both equally close to Halifax.logicmathshort
Ramanujan discovered 1729 as a magic number. Why 1729 is a magic number ?
It can be expressed as the sum of the cubes of two different sets of numbers.
10^3 + 9^3 = 1729
12^3 + 1^3 = 1729logicmystery
Dave and Brad, two popular politicians, met at a club to discuss the overthrow of their party leader. They each ordered a vodka on the rocks. Brad downed his and ordered another. He then drank his second in a gulp and decided to wait before he ordered a third. Meanwhile, Dave, who was sipping his drink, suddenly fell forward dead. Both men were setup for an assassination. Why did Dave die and Brad live?
Both Dave and Brad were given drinks with poisoned ice cubes. Brad drank his drinks so quickly that the ice didn't have time to melt and release the poison. logicmysteryscary
Dodge was staying with Cousin Jamie in Jamie's lakeside cabin. They were setting up Jamie's will. As Dodge was Jamie's closest living relative, much of Jamie's estate was being left to him. One day, Jamie went to Dr Dodge very disturbed. "Doctor," he began, "I have just found out that a man named Georgio wants to get me. He will be here very soon. Where will I go? Where can I hide? If he finds me in here, he will surely kill me. I do not have time to leave this clearing and go farther into the woods."
Dr Dodge thought for a moment, and then grabbed a 5' long bamboo pole, with a diameter the size of a quarter. "Jamie, follow me out to the lake. This lake is 4' deep. If you lie on the bottom of the lake and breathe through this pole, Georgio will never find you. I will be in the bulrushes with a shotgun, and I will shoot him when he comes. I will swim down to find you when he is gone." Jamie consented, and lay down on the bottom of the lake with the bamboo pole in his mouth. A few hours later, a ranger passed by. He found Jamie's body, dead. Dr Dodge told the police of the circumstance, and that Jamie had probably panicked, and died. Police arrested Dr Dodge, on the charges of murdering Jamie. Why?
The bamboo pole did not have any cracks or holes. Its opening was above water the whole time.
Jamie died of carbon dioxide poisoning. The pole was 5' long, but only the size of a quarter. The first time he breathed in, he breathed oxygen. When he exhaled, the air could not travel 5' before he breathed in again. He was just breathing what he exhaled. Before long, all he was breathing was carbon dioxide. He died of CO2 poisoning. Doctor Doge was the one who told him to use the pole, therefore the cause of his death. Dodge is a DOCTOR, and therefore knows about the CO2. Dodge did murder Jamie. His motive: the money in the will.logic
You are standing in a house in the middle of the countryside. There is a small hole in one of the interior walls of the house, through which 100 identical wires are protruding.
From this hole, the wires run underground all the way to a small shed exactly 1 mile away from the house, and are protruding from one of the shed's walls so that they are accessible from inside the shed.
The ends of the wires coming out of the house wall each have a small tag on them, labeled with each number from 1 to 100 (so one of the wires is labeled "1", one is labeled "2", and so on, all the way through "100"). Your task is to label the ends of the wires protruding from the shed wall with the same number as the other end of the wire from the house (so, for example, the wire with its end labeled "47" in the house should have its other end in the shed labeled "47" as well).
To help you label the ends of the wires in the shed, there are an unlimited supply of batteries in the house, and a single lightbulb in the shed. The way it works is that in the house, you can take any two wires and attach them to a single battery. If you then go to the shed and touch those two wires to the lightbulb, it will light up. The lightbulb will only light up if you touch it to two wires that are attached to the same battery. You can use as many of the batteries as you want, but you cannot attach any given wire to more than one battery at a time. Also, you cannot attach more than two wires to a given battery at one time. (Basically, each battery you use will have exactly two wires attached to it). Note that you don't have to attach all of the wires to batteries if you don't want to.
Your goal, starting in the house, is to travel as little distance as possible in order to label all of the wires in the shed.
You tell a few friends about the task at hand.
"That will require you to travel 15 miles!" of of them exclaims.
"Pish posh," yells another. "You'll only have to travel 5 miles!"
"That's nonsense," a third replies. "You can do it in 3 miles!"
Which of your friends is correct? And what strategy would you use to travel that number of miles to label all of the wires in the shed?
Believe it or not, you can do it travelling only 3 miles!
The answer is rather elegant. Starting from the house, don't attach wires 1 and 2 to any batteries, but for the remaining wires, attach them in consecutive pairs to batteries (so attach wires 3 and 4 to the same battery, attach wires 5 and 6 to the same battery, and so on all the way through wires 99 and 100).
Now travel 1 mile to the shed, and using the lightbulb, find all pairs of wires that light it up. Put a rubberband around each pair or wires that light up the lightbulb. The two wires that don't light up any lightbulbs are wires 1 and 2 (though you don't know yet which one of them is wire 1 and which is wire 2). Put a rubberband around this pair of wires as well, but mark it so you remember that they are wires 1 and 2.
Now go 1 mile back to the house, and attach odd-numbered wires to batteries in the following pairs: (1 and 3), (5 and 7), (9 and 11), and so on, all the way through (97 and 99).
Similarly, attach even-numbered wires to batteries in the following pairs: (4 and 6), (8 and 10), (12 and 14), and so on, all the way through (96 and 98).
Note that in this round, we didn't attach wire 2 or wire 100 to any batteries.
Finally, travel 1 mile back to the shed. You're now in a position to label all of the wires here.
First, remember we know the pair of wires that are, collectively, wires 1 and 2. So test wires 1 and 2 with all the other wires to see what pair lights up the lightbulb. The wire from wires 1 and 2 that doesn't light up the bulb is wire 2 (which, remember, we didn't connect to a battery), and the other is wire 1, so we can label these as such. Furthermore, the wire that, with wire 1, lights up a lightbulb, is wire 3 (remember how we connected the wires this round).
Now, the other wire in the rubber band with wire 3 is wire 4 (we know this from the first round), and the wire that, with wire 4, lights up the lightbulb, is wire 6 (again, because of how we connected the wires to batteries this round). We can continue labeling batteries this way (next we'll label wire 7, which is rubber-banded to wire 6, and then we'll label wire 9, which lights up the lightbulb with wire 7, and so on). At the end, we'll label wire 97, and then wire 99 (which lights up the lightbulb with wire 97), and finally wire 100 (which isn't connected to a battery this round, but is rubber-banded to wire 99).
And we're done, having travelled only 3 miles!