Send your feedback or ask for help here!
Good, tricky and annoying. Definitely not an easy task.
Hello, thanks for this puzzle, it took me a while to pass all the test. Everything is green on my side now but the last validator is not good. Can you have a look please?
import sys import math # Auto-generated code below aims at helping you parse # the standard input according to the problem statement. def calculator(nbr1,nbr2,operationSign): a = float(nbr1) b = float(nbr2) if operationSign == 0: res = a+b elif operationSign == 1: res = a-b elif operationSign == 2: res = a*b else: res = a/b if res - math.floor(res)==0: res = int(res) return round(res,3) n = int(input()) numbers = ['0','1','2','3','4','5','6','7','8','9'] operationSign = ['+','-','x','/'] AC = 'AC' equal = '=' keys =  for i in range(n): keys.append(input()) i=0 j=0 nbr1 = '' nbr2 = '' res = '' operation = -1 operationPrev = -1 while i<n: key = keys[i] #Reset if AC if key == AC: nbr1 = '' nbr2 = '' res = '' j = 0 operation = -1 operationPrev = -1 print('0') #Check if operation pressed elif key in operationSign: change = False #deal with multiple hit if i<n: if keys[i+1] in operationSign: changeNbr = 0 while keys[i+1] in operationSign: change = True changeNbr += 1 i += 1 key = keys[i] operation = operationSign.index(key) j += 1 if j==1: if change: for k in range(changeNbr+1): print(nbr1) else: print(nbr1) #Update nbr1 and nbr2 elif (key in numbers): if j>=1: nbr2 += key prevNbr2 = nbr2 print(nbr2) else: nbr1 += key print(nbr1) if j>1 and nbr2!= '': nbr1 = str(calculator(nbr1,nbr2,operationPrev)) prevNbr2 = nbr2 print(nbr1) if change: change = False print(nbr1) nbr2 = '' operationPrev = operation if key == equal: multipleEqual = False if i<n-1: if keys[i+1] == equal: while keys[i+1] == equal: multipleEqual = True nbr1 = str(calculator(nbr1,prevNbr2,operationPrev)) print(nbr1) i+=1 j=0 if i==n-1: break if nbr2 != '': nbr1 = str(calculator(nbr1,nbr2,operationPrev)) prevNbr2 = nbr2 nbr2 = '' print(nbr1) if i<n-1: if keys[i+1] in numbers: nbr1 = '' j = 0 else: if nbr2 != '': nbr1 = str(calculator(nbr1,nbr2,operationPrev)) print(nbr1) i+=1
Try this test case:
8 8 0 - 3 x 1 0 =
The final answer should be 770.
Your code also fails in similar cases where other operators are involved.
thank you I figured out what was wrong
This sequential puzzle is quite not oftenly seen in easy section, that’s quite interesting.
I have found my way on test cases but the validators 3 and 7 are still not ok with my solution…
I tried multiple combination with AC instruction placements but no issue appears.
Could any one give me any specificity of the validator vs the equivalent test case?
thank you !
Validator 3: The structure of the input is similar to Test 3. I guess there shouldn’t be an issue before the “AC” part? For the part after “AC”, you may create custom cases to test out different single-digit number combinations (I won’t say more, otherwise a bit too spoilery…) and see if your code produces the correct output.
Validator 7: It looks like it’s the only case where the user presses = consecutively, gets a result, then types another operation, and presses = consecutively again. That is to say, another operation is performed on the earlier result immediately repeatedly. You may check whether your code handles such a situation correctly.
I tried the following pattern and it works :
9 2 5 + 6 = = - = =
type or paste code here
results: 2 25 25 6 31 37 37 31 25
Would I be mistaken in my understanding how to handle this situation?
There is an operand after the second operator, e.g.
9 2 5 + 6 = = - 8 = =
There are 10 inputs so I changed 9 to 10.
My program is giving these output:
Which I think are quite ok, may I missed or miss understood a rule.
Yes, you’re right. So, there’s something else wrong with your code. You may PM your code to me and I can take a look.
Did you ever get to the bottom of this? I too am stuck on validator steps 3 and 7 despite passing the test cases and trying the suggestions here.
I’m still trying to figure out, if it make sens, I’ll inform you once found my issue.
Ok I went through, the possible link between both validators is the management of small results.
I’d prefer avoid to go in more details, if you don’t figure out, lets PM.
Thanks I’ll give that a try
Nice game ! Validators 3 and 5 and 7 are red for me while all tests are green.
I have woked this with the help of Rust, then not very easy to read.