Hello! Here is editorial!
I want to make some comments. long long should not work, but I forgot to make 10^18 after testing. I see many WA, because trunk(ans) returns double, you shold return int. Many people asked me about divide by zero. But in statements you can see, that answer exists. Task is simple if you are using Python or int128 on C++.
At first, s >= uneven num, because min uneven is 1 and uneven sum of should be not less than s. At second, s % 2 must be same as uneven sum % 2, because only uneven can change parity. That's all
You should see, that we answer requests in real time. For 1-st type we add name to set. For 2-nd type we check if the name is in set.
It is standart task. For sum you should use segment tree or prefix sums. For max we should build ST for max. Now we should print sum(l, r) — max(l, r)
All you should do is to find Pascal triangle. Now we find his tier: n = i + j — 2 and number: k = j — 1. Find answer as n! / k! / (n — k)! by module $$$10^9$$$ + 7. We take factorial by module dynamically
You should use mathematically expectation formule and no more. Here is explanations for it: a person turn right wuth probability $$$a[i]$$$, and go straight with probability $$$100-a[i]$$$ .