Long logic riddles


Justin Case and Auntie Bellum are fellow con artists who deliver coded messages to each other to communicate. Recently Auntie Bellum was put in jail for stealing a rare and expensive diamond. Only a few days after this, Justin Case sent her a friendly letter asking her how she was. On the inside of the envelope of the letter, he hid a code. Yesterday, Auntie Bellum escaped and left the envelope and the letter inside the jail cell. The police did some research and found the code on the inside of the envelope, but they haven't been able to crack it. Could you help the police find out what the message is? This is the code: llwatchawtfeclocklnisksundialcirbetimersool
The message was "loose bricks in left wall." The message was put backward with words related to time in between. This is how the message looks when separated: ll watch awtfe clock Inisk sundial cirbe timer sool If you take out watch, clock, sundial, and timer, this is what is left: llawtfelniskcirbesool Look at this backwards and this is what you have: loose bricks in left wall Auntie Bellum took out the bricks and escaped in the night. Then, she put the bricks back where they were.
85.67 %
49 votes

There are 5 pirates in a ship. Pirates have hierarchy C1, C2, C3, C4 and C5. C1 designation is the highest and C5 is the lowest. These pirates have three characteristics: a. Every pirate is so greedy that he can even take lives to make more money. b. Every pirate desperately wants to stay alive. c. They are all very intelligent. There are total 100 gold coins on the ship. The person with the highest designation on the deck is expected to make the distribution. If the majority on the deck does not agree to the distribution proposed, the highest designation pirate will be thrown out of the ship (or simply killed). The first priority of the pirates is to stay alive and second to maximize the gold they get. Pirate 5 devises a plan which he knows will be accepted for sure and will maximize his gold. What is his plan?
To understand the answer,we need to reduce this problem to only 2 pirates. So what happens if there are only 2 pirates. Pirate 2 can easily propose that he gets all the 100 gold coins. Since he constitutes 50% of the pirates, the proposal has to be accepted leaving Pirate 1 with nothing. Now let's look at 3 pirates situation, Pirate 3 knows that if his proposal does not get accepted, then pirate 2 will get all the gold and pirate 1 will get nothing. So he decides to bribe pirate 1 with one gold coin. Pirate 1 knows that one gold coin is better than nothing so he has to back pirate 3. Pirate 3 proposes {pirate 1, pirate 2, pirate 3} {1, 0, 99}. Since pirate 1 and 3 will vote for it, it will be accepted. If there are 4 pirates, pirate 4 needs to get one more pirate to vote for his proposal. Pirate 4 realizes that if he dies, pirate 2 will get nothing (according to the proposal with 3 pirates) so he can easily bribe pirate 2 with one gold coin to get his vote. So the distribution will be {0, 1, 0, 99}. Smart right? Now can you figure out the distribution with 5 pirates? Let's see. Pirate 5 needs 2 votes and he knows that if he dies, pirate 1 and 3 will get nothing. He can easily bribe pirates 1 and 3 with one gold coin each to get their vote. In the end, he proposes {1, 0, 1, 0, 98}. This proposal will get accepted and provide the maximum amount of gold to pirate 5.
84.78 %
55 votes

You have 25 horses. When they race, each horse runs at a different, constant pace. A horse will always run at the same pace no matter how many times it races. You want to figure out which are your 3 fastest horses. You are allowed to race at most 5 horses against each other at a time. You don't have a stopwatch so all you can learn from each race is which order the horses finish in. What is the least number of races you can conduct to figure out which 3 horses are fastest?
You need to conduct 7 races. First, separate the horses into 5 groups of 5 horses each, and race the horses in each of these groups. Let's call these groups A, B, C, D and E, and within each group let's label them in the order they finished. So for example, in group A, A1 finished 1st, A2 finished 2nd, A3 finished 3rd, and so on. We can rule out the bottom two finishers in each race (A4 and A5, B4 and B5, C4 and C5, D4 and D5, and E4 and E5), since we know of at least 3 horses that are faster than them (specifically, the horses that beat them in their respective races). This table shows our remaining horses: A1 B1 C1 D1 E1 A2 B2 C2 D2 E2 A3 B3 C3 D3 E3 For our 6th race, let's race the top finishers in each group: A1, B1, C1, D1 and E1. Let's assume that the order of finishers is: A1, B1, C1, D1, E1 (so A1 finished first, E1 finished last). We now know that horse D1 cannot be in the top 3, because it is slower than C1, B1 and A1 (it lost to them in the 6th race). Thus, D2 and D3 can also not be in the to 3 (since they are slower than D1). Similarly, E1, E2 and E3 cannot be in the top 3 because they are all slower than D1 (which we already know isn't in the top 3). Let's look at our updated table, having removed these horses that can't be in the top 3: A1 B1 C1 A2 B2 C2 A3 B3 C3 We can actually rule out a few more horses. C2 and C3 cannot be in the top 3 because they are both slower than C1 (and thus are also slower than B1 and A1). And B3 also can't be in the top 3 because it is slower than B2 and B1 (and thus is also slower than A1). So let's further update our table: A1 B1 C1 A2 B2 A3 We actually already know that A1 is our fastest horse (since it directly or indirectly beat all the remaining horses). So now we just need to find the other two fastest horses out of A2, A3, B1, B2 and C1. So for our 7th race, we simply race these 5 horses, and the top two finishers, plus A1, are our 3 fastest horses.
84.52 %
54 votes

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) A.initializeValues(0) for each character in S1 arrayIndex = mapCharacterToNumber(character) //maps "a" to 0, "b" to 1, "c" to 2, etc... A[arrayIndex] += 1 end for each character in S2 arrayIndex = mapCharacterToNumber(character) A[arrayIndex] -= 1 end for (i = 0; i < 26; i++) if A[i] != 0 return false end end return true end
84.15 %
44 votes

In a small town in the United States, a teenage boy asked his parents if he could go to a friend's party. His parents agreed, provided that he was back before sunrise. He left the house that evening clean-shaven and when he returned just before the following sunrise his parents were amazed to see that he had a fully grown beard. What happened?
The small town was Barrow in Alaska, the northernmost town in the United States. When the sun sets there in the middle of November, it does not rise again for 65 days. That allowed plenty of time for the boy to grow a beard before the next sunrise.
84.07 %
77 votes

You have just purchased a small company called Company X. Company X has N employees, and everyone is either an engineer or a manager. You know for sure that there are more engineers than managers at the company. Everyone at Company X knows everyone else's position, and you are able to ask any employee about the position of any other employee. For example, you could approach employee A and ask "Is employee B an engineer or a manager?" You can only direct your question to one employee at a time, and can only ask about one other employee at a time. You're allowed to ask the same employee multiple questions if you want. Your goal is to find at least one engineer to solve a huge problem that has just hit the company's factory. The problem is so urgent that you only have time to ask N-1 total questions. The major problem with questioning the employees, however, is that while the engineers will always tell you the truth about other employees' roles, the managers may lie to you if they like. You can assume that the managers will do their best to confuse you. How can you find at least one engineer by asking at most N-1 questions?
You can find at least one engineer using the following process: Put all of the employees in a conference room. If there happen to be an even number of employees, pick one at random and send him home for the day so that we start with an odd number of employees. Note that there will still be more engineers than managers after we send this employee home. Then call them out one at a time in any order. You will be forming them into a line as follows: If there is nobody currently in the line, put the employee you just called out in the line. Otherwise, if there is anybody in the line, then we do the following. Let's call the employee currently at the front of the line Employee_Front, and call the employee who we just called out of the conference room Employee_Next. So ask Employee_Front if Employee_Next is a manager or an engineer. If Employee_Front says "manager", then send both Employee_Front and Employee_Next home for the day. However, if Employee_Front says "engineer", then put Employee_Next at the front of the line. Keep doing this until you've called everyone out of the conference room. Notice that at this point, you'll have asked N-1 or less questions (you asked at most one question each time you called an employee out except for the first employee, when you didn't ask a question, so that's at most N-1 questions). When you're done calling everyone out of the conference room, the person at the front of the line is an engineer. So you've found your engineer! But the real question: how does this work? We can prove this works by showing a few things. First, let's show that if there are any engineers in the line, then they must be in front of any managers. We'll show this with a proof by contradiction. Assume that there is a manager in front of an engineer somewhere in the line. Then it must have been the case that at some point, that engineer was Employee_Front and that manager was Employee_Next. But then Employee_Front would have said "manager" (since he is an engineer and always tells the truth), and we would have sent them both home. This contradicts their being in the line at all, and thus we know that there can never be a manager in front of an engineer in the line. So now we know that after the process is done, if there are any engineers in the line, then they will be at the front of the line. That means that all we have to prove now is that there will be at least one engineer in the line at the end of the process, and we'll know that there will be an engineer at the front. So let's show that there will be at least one engineer in the line. To see why, consider what happens when we ask Employee_Front about Employee_Next, and Employee_Front says "manager". We know for sure that in this case, Employee_Front and Employee_Next are not both engineers, because if this were the case, then Employee_Front would have definitely says "engineer". Put another way, at least one of Employee_Front and Employee_Next is a manager. So by sending them both home, we know we are sending home at least one manager, and thus, we are keeping the balance in the remaining employees that there are more engineers than managers. Thus, once the process is over, there will be more engineers than managers in the line (this is also sufficient to show that there will be at least one person in the line once the process is over). And so, there must be at least one engineer in the line. Put altogether, we proved that at the end of the process, there will be at least one engineer in the line and that any engineers in the line must be in front of any managers, and so we know that the person at the front of the line will be an engineer.
83.96 %
52 votes

Emily was sitting at her study table, home alone, on a cold and stormy night. Her parents had taken a flight earlier in the morning to Australia as her grandmother had passed away. She had wanted to follow her parents but she had an important English examination the next day which she could not miss. The storm was getting heavier by the minute and the wind was howling outside. All this noise made it very hard for her to concentrate. She was on the verge of dozing off when she was shaken alert by a sudden "THUD!" She dismissed it as a window which had been slammed shut by the wind. She tried to concentrate on her books when she heard faint footsteps. Emily got out of her room and looked around when suddenly, without warning, she was grabbed by the neck. She tried to scream but it came out as a mere whimper as the intruder was pressing hard against her throat with his arm. She tried to free herself from his grip but to no avail. "Give me all your money!" growled the man who had grabbed her from behind. "Th-there is none h-here! Please ll-let me go!" cried Emily. "Don't LIE TO ME!" screamed the increasingly agitated man. She felt the man strengthen his grip around her neck. She said nothing and a few seconds passed by in silence. Suddenly the phone rang which alerted both of them. "People will get suspicious if I don't answer the phone," said Emily, with a controlled voice. The intruder let her go. "Alright, but NO funny business, or ELSE!" said the nervous intruder. Emily walked toward the phone. She took a deep breath and calmed herself. She picked up the phone. "Hey Em! How's the revision going?" said the caller. "Hey Anna. Thanks for the call. Hey you know those Science notes I lent you last week? Well I really need them back. It would be a great help to me. It's an emergency, so if you could give me them tomorrow it would be great. Please hurry in finding the notes. I need to get back to my books now. Bye," Emily said. She hung up the phone. "It was wise of you not to say anything," said the intruder, although he was more than a bit confused by her conversation. "Now TELL ME WHERE THE MONEY IS KEPT!" screamed the thief. "It...it's...in my dad's room. The first room on the right. Third drawer," said Emily. "SHOW me!" said the man, and removed his grip around her neck. She took a big gulp of air and nearly fell. She swallowed hard and said a silent prayer. She walked slowly, in silence, toward her father's room. All of a sudden, they heard police sirens. The intruder froze in his footsteps. He ran to the nearest window and jumped out of it. Emily ran outside in time to see the intruder being escorted into the car. She saw Anna and she ran toward her and hugged her. "Smart kids," said the policeman. What had happened?
Emily had used the mute button during her conversation with Anna so that all Anna heard was: "call...help...emergency...please hurry". Anna, sensing something was wrong, called the police and told them Emily's address. The police were able to come to Emily's house in time to catch the perpetrator.
83.86 %
68 votes

The Miller next took the company aside and showed them nine sacks of flour that were standing as depicted in the sketch. "Now, hearken, all and some," said he, "while that I do set ye the riddle of the nine sacks of flour. And mark ye, my lords and masters, that there be single sacks on the outside, pairs next unto them, and three together in the middle thereof. By Saint Benedict, it doth so happen that if we do but multiply the pair, 28, by the single one, 7, the answer is 196, which is of a truth the number shown by the sacks in the middle. Yet it be not true that the other pair, 34, when so multiplied by its neighbour, 5, will also make 196. Wherefore I do beg you, gentle sirs, so to place anew the nine sacks with as little trouble as possible that each pair when thus multiplied by its single neighbour shall make the number in the middle." As the Miller has stipulated in effect that as few bags as possible shall be moved, there is only one answer to this puzzle, which everybody should be able to solve.
The way to arrange the sacks of flour is as follows: 2, 78, 156, 39, 4. Here each pair when multiplied by its single neighbour makes the number in the middle, and only five of the sacks need be moved. There are just three other ways in which they might have been arranged (4, 39, 156, 78, 2; or 3, 58, 174, 29, 6; or 6, 29, 174, 58, 3), but they all require the moving of seven sacks.
83.74 %
34 votes

Brad starred through the dirty soot-smeared window on the 22nd floor of the office tower. Overcome with depression he slid the window open and jumped through it. It was a sheer drop outside the building to the ground. Miraculously after he landed he was completely unhurt. Since there was nothing to cushion his fall or slow his descent, how could he have survived the fall?
Brad was so sick and tired of window washing, he opened the window and jumped inside.
83.63 %
67 votes

You are standing in a pitch-dark room. A friend walks up and hands you a normal deck of 52 cards. He tells you that 13 of the 52 cards are face-up, the rest are face-down. These face-up cards are distributed randomly throughout the deck. Your task is to split up the deck into two piles, using all the cards, such that each pile has the same number of face-up cards. The room is pitch-dark, so you can't see the deck as you do this. How can you accomplish this seemingly impossible task?
Take the first 13 cards off the top of the deck and flip them over. This is the first pile. The second pile is just the remaining 39 cards as they started. This works because if there are N face-up cards in within the first 13 cards, then there will be (13 - N) face up cards in the remaining 39 cards. When you flip those first 13 cards, N of which are face-up, there will now be N cards face-down, and therefore (13 - N) cards face-up, which, as stated, is the same number of face-up cards in the second pile.
83.62 %
59 votes
Page 1 of 28.