I hope you all enjoyed the contest! Special thanks to:
- damamila, for creating problem G
- chromate00, AG-88301, simplelife, SpyrosAliv, reirugan and damamila for editorials for B-G respectively.
- cry, for helping answer clarifications.
A — The 67th Integer Problem
Many solutions exist here, and they are all trivial to find. Consider the value of $$$\min(x, y)$$$ when $$$x$$$ is constant, and you vary $$$y$$$. When $$$y \gt = x$$$, the value is $$$x$$$, and when $$$y \lt x$$$ the value is $$$y$$$. Therefore, the largest that $$$\min(x, y))$$$ can get for any value of $$$y$$$ is $$$x$$$. Therefore, outputting $$$y$$$ as any integer greater than or equal to $$$x$$$ works.
A common mistake was to output $$$y=x+1$$$, which fails because $$$68$$$ is greater than $$$67$$$, therefore not a valid output.
for _ in range(int(input())):
print(67)
B — The 67th 6-7 Integer Problem
Note how negating 6 out of 7 numbers is equivalent to negating all of them, and then negating one out of 7 numbers. Therefore, you can negate all 7 numbers, and then negate the least one afterwards.
for i in range(int(input())):
nums = list(map(int, input().split()))
print(2 * max(nums) - sum(nums))
C — The 67th Permutation Problem
Observe that the position of an element doesn't really matter: we are only interested in whether an element is a median, a large element or a small element (in its triple).
Since $$$3n$$$ has no elements larger than it, it must be a large element. Similarly, since $$$1$$$ has no elements smaller than it, it must be a small element.
To maximise the sum of medians, we should pick the largest possible median available, which is $$$3n-1$$$. Since $$$1 \lt 3n-1 \lt 3n$$$, this forms a valid triple.
Now we can repeat the process on the subset $$${2, 3, ... 3n-2}$$$, yielding the construction
Let the $$$i^{th}$$$ triple be $$${l_i, m_i, r_i}$$$, with $$$l_i \lt m_i \lt r_i$$$, and wlog let $$$m_1 \lt m_2 \lt \cdots \lt m_n$$$ be the $$$n$$$ medians.
Each median needs an element strictly larger than it not used in any other triple. So there should be at least $$$1$$$ element larger than $$$m_n$$$, at least $$$3$$$ elements larger than $$$m_{n-1}$$$ (namely $$$m_n$$$, $$$r_n$$$, $$$r_{n-1}$$$), and more generally, at least $$$2k - 1$$$ elements larger than $$$m_{n-k+1}$$$.
In the set $$$1 \ldots 3n$$$, there are $$$3n - m_{n-k+1}$$$ elements larger than m_{n-k+1} (namely $$$m_{n-k+1}+1 \ldots 3n$$$), and so we need
Rearranging, we get $$$m_{n-k+1} \leq 3n - 2k + 1$$$, as in the optimal construction.
for _ in range(int(input())):
n = int(input())
k = 3 * n
for i in range(1,n+1):
print(i, k-1, k, end=" ")
k -= 2
print()
D — The 67th OEIS Problem
Think something related to coprime numbers.
There are many ways to construct the array — we will provide two ways to do it.
Let's take $$$n+1$$$ distinct numbers $$$b_1,b_2,\ldots,b_{n+1}$$$.
Now let $$$a_i=b_i\cdot b_{i+1}$$$ for all $$$i$$$.
Now $$$\operatorname{gcd}(a_i,a_{i+1})=b_{i+1}\cdot \operatorname{gcd}(b_i,b_{i+2})$$$.
Now if $$$\operatorname{gcd}(b_i,b_{i+2})=1$$$ for all $$$i$$$, then we can obtain a distinct gcd for each adjacent pair and the construction is valid.
One way to obtain this is to let all $$$b_i$$$ be all primes starting from $$$2,3,5,\ldots$$$. Since all numbers are coprime to each other, their pairwise $$$gcd$$$ is $$$1$$$ and we get a valid construction.
Another way to obtain this to let all $$$b_i$$$ be odd numbers starting from $$$1,3,5,\ldots$$$. Since $$$\operatorname{gcd}(x,x+4)=1$$$ , where $$$x$$$ is odd, this construction is also valid.
for _ in range(int(input())):
n = int(input())
k = 1
for i in range(1,n+1):
print(k * (k+2), end=" ")
k += 2
print()
E — The 67th XOR Problem
What happens after two operations? Does the first operation matter?
Remember the propery that $$$x \oplus x = 0$$$.
We have an array $$$a = [a_1, a_2, a_3, \ldots, a_n]$$$. Suppose we performed the operations from left to right, to see how operations affect the array.
After the first operation, the array becomes: $$$a = [a_2 \oplus a_1, a_3 \oplus a_1, \ldots, a_n \oplus a_1]$$$. Note that the first element was removed.
After the second operation, the array becomes $$$a = [(a_3 \oplus a_1) \oplus (a_2 \oplus a_1), \ldots, (a_n \oplus a_1) \oplus (a_2 \oplus a_1)]$$$. Due to Hint $$$2$$$, this is the same as $$$a = [a_3 \oplus a_2, \ldots, a_n \oplus a_2]$$$.
Note that this new array is independent of $$$a_1$$$. In fact, after any two operations, the value of the element chosen in the first operation does not matter. Taking this a step further: when doing three operations, the elements chosen for the first two operations do not matter. Inductively, the only thing that matters is the element we choose last for an operation (let it be $$$x$$$) and which element we never choose for an operation (let it be $$$y$$$). The final value of the array is going to be $$$x \oplus y$$$.
Since $$$n$$$ is small, it is enough to brute force all possible pairs $$$(x, y)$$$. The answer is the maximum value of $$$a_x \oplus a_y$$$ among all pairs.
for _ in range(int(input())):
n = int(input())
a = list(map(int, input().split()))
m = 0
for i in range(n):
for j in range(i+1, n):
m = max(m, a[i] ^ a[j])
print(m)
The problem of finding the integers $$$a$$$ and $$$b$$$ from an array such that $$$a \oplus b$$$ is maximized can be done in $$$O(n \log n)$$$ using a trie.
You can see in detail how this would work on this post. Roughly speaking, we insert the binary representation of each number in the trie. After that, for each number we try to find which other number gives maximum xor, which can be done with a greedy walk on the trie.
F — The 67th Tree Problem
We know that the number of vertices in the entire tree is $$$x+y$$$. Therefore, the subtree of the root has size $$$x+y$$$. So if $$$x+y$$$ is even and $$$x$$$ is zero, there is no valid tree. Similarly, if $$$x+y$$$ is odd and $$$y$$$ is zero, there is no valid tree. From this point onwards, we can now exclude the root by decrementing either $$$x$$$ or $$$y$$$, and only considering the other vertices. The root will be trivially satisfied.
We claim that for any vertex whose subtree has an even size, it must have at least one child with an odd size. Indeed, suppose all of its children have even size. Then the total number of vertices in the subtree will be the sum of some even numbers, plus one, the node itself. By contrapositive, this implies the desired claim.
Therefore, if the number of vertices with an even subtree size is larger than the number of vertices with an odd subtree size (excluding the root), there is no valid tree.
All other cases are possible.
Read the hints.
Now, we will try to make every vertex (excluding the root) have subtree size either $$$1$$$ or $$$2$$$. To do this, we will attach $$$x$$$ disjoint pairs of vertices. Then we will attach each pair, and all of the remaining vertices, to the root. Now, the number of vertices with an even subtree size is exactly $$$x$$$, the parent from each of the pairs, as desired.
for _ in range(int(input())):
x, y = map(int, input().split())
n = x + y
d = y - x
if (x == 0 and n % 2 == 0) or n//2<x:
print("NO")
continue
print("YES")
mm = 2 * x + (d % 2)
for i in range(2, mm + 1):
print(i - 1, i)
for i in range(mm + 1, n + 1):
print(mm, i)
G — The 67th Iteration of "Counting is Fun"
When is there no valid $$$a$$$?
Remember for a person $$$i$$$ with $$$b_i \gt 0$$$ to be able to sit down, one of their neighbours already needs to be sat down.
What do you notice about people where $$$b_i = 0$$$?
If $$$b_i = 0$$$, then $$$a_i$$$ must also equal $$$0$$$.
If a person $$$i$$$ with $$$b_i \gt 0$$$ has no neighbour with a smaller $$$b_i$$$, they would never sit down so there is no valid $$$a$$$ so we output $$$0$$$.
We can observe that all $$$a_i$$$ are independent of each other so long as they are consistent with the array $$$b$$$. This means we can compute the number of possible $$$a_i$$$ for every $$$i$$$ separately.
Let $$$c_t$$$ be the number of people sat down at time $$$t$$$ or earlier. This is all people where $$$b_i \leq t$$$. For a time $$$t$$$, we can calculate $$$c_t$$$ using prefix sums as it is the sum of $$$c_{t-1}$$$ and the number of people that sit down at time $$$t$$$.
For a person to sit down at time $$$t$$$, two conditions had to be met:
At least $$$a_i$$$ people have already sat down strictly before time $$$t$$$.
At least one of their neighbors (person $$$i−1$$$ or $$$i+1$$$, if they exist) has already sat down strictly before time $$$t$$$.
We can now split people into $$$2$$$ types depending on which condition occurs first for them.
Type A: Condition $$$1$$$ is satisfied first. This means they are waiting for one of their neighbours to sit down so they can sit down. A person is of this type if the earliest time one of their neighbours sat down is exactly $$$1$$$ less than the time they sat down. This means their $$$a_i$$$ can be any value between $$$1$$$ and $$$c_{t-1}$$$ inclusive so there are $$$c_{t-1}$$$ possible values.
Type B: Condition $$$2$$$ is satisfied first. This means they are waiting for enough people to have sat down. A person is of this type if the time they sit down is at least $$$2$$$ greater than the earliest time one of their neighbours sat down. Since they did not sit down at time $$$t-1$$$, their $$$a_i$$$ must be greater than $$$c_{t-2}$$$. This means it must be between $$$c_{t-2}+1$$$ and $$$c_{t-1}$$$ inclusive, giving $$$c_{t-1}-c_{t-2}$$$ possibilities.
We can iterate over all people $$$i$$$ and look at the earliest time one of their neighbours sat down to find out which type of person they are, and then compute how many valid $$$a_i$$$ there are for them.
Finally, we can multiply the number of valid $$$a_i$$$ for every person, and output this modulo $$$676767677$$$.
from itertools import accumulate
MOD = 676767677
for _ in range(int(input())):
n, m = map(int, input().split())
b = [*map(int, input().split())]
cnt = [0] * m
for i in range(n):
cnt[b[i]] += 1
p = [0, *accumulate(cnt)]
ans = 1
for i in range(n):
if b[i] > 0:
t = float("inf")
for v in (i-1, i+1):
if v not in range(n): continue
t = min(t, b[v])
t += 1
if b[i] > t:
ans = ans * cnt[b[i] - 1] % MOD
elif b[i] == t:
ans = ans * p[b[i]] % MOD
else:
ans = 0
print(ans % MOD)








Auto comment: topic has been updated by macaquedev (previous revision, new revision, compare).
PS: Sorry this is late — I thought I had to wait until after open hack phase, but then was asleep when that finished...
It was an amazing Contest mr "macaquedev", thanks for giving this great experience, please handle the hackers... i outputted x for problem A, still it failed in system testing.. WHATS THE PROBLEMM!!!
happened same with me
no, its system testing, you can see that your A submission is still in queue (because of open hacking)
Brother, i think this is because in problem A we need to maximize, and the best way to do that is to take the max y which is nothing but macaquedev's favourite number 67.
nvm my answer was right, it worked. MY FAV NUM IS 67 TOO HEHEH
it is just weird??
i mean min(x,x) will be x , and min(x,67) will also be x
so their is no difference?????
edit 2:
your submission have shown AC, then why are you saying that it gave WA
You didn't FST. You were just mid systesting.
I think you meant to reply to kilobyte136, not me
check the thread again please
you sure about that? And also, why did you copy the codes from the authors, and upsolve everything in 2-3 minutes? Fraud?
stfu, there is no rule such as "after contest is over you still are not allowed t use external code"
Fraud?, a shitposter like you will tell someone now that what is fraud?\s
you need to fix your english
please hover through your comments first, then you will realize how much u need to improve your english
e.g-: (why you create id) (i not this!)
these are chunks of your comments which are absolute hilarious, also remember, not everyone on codeforces have english as there first language, still they are better than you
so toxic, wtf?
there are multiple possible answers, one answer might be 67, or just
xwould also work, but you outputtedx+1which fails forx=67(mentioned in the editorial)brother loves 67 way too much
A better proof for D :
The mentioned construction is :
We claim that $$$\gcd((2i-1)\cdot(2i+1),(2i+1)\cdot(2i+3))=(2i+1)$$$ because $$$\gcd(2i-1,2i+3)=1$$$.
In fact here you don't need Euclidean algorithm to show so , the $$$\gcd$$$ is no more than $$$4$$$ (from the fact that the $$$\gcd(a,b) \le |a-b|$$$ , Here $$$a\neq b$$$) , it can never be either $$$2$$$ or $$$4$$$ since both are odd numbers , you just need to show they never both divides $$$3$$$ , if one divides $$$3$$$ then other not (because modulus $$$1$$$) and of course the other cases are redundant as one of the numbers won't be a multiple of $$$3$$$ , thus our proof is complete and the construction is valid.
I have a suggestion for an answer too, Let $$$P_k$$$ be the product of the first $$$k$$$ consecutive primes.
Then $$$\gcd(P_k, P_m) = P_{\min(k,m)}$$$, so the GCD is uniquely determined by the smaller product.
Different pairs of such products give different GCDs, which is why the GCD behaves “uniquely” here. For example: - $$$P_2 = 2 \cdot 3 = 6$$$ - $$$P_3 = 2 \cdot 3 \cdot 5 = 30$$$ - $$$P_4 = 2 \cdot 3 \cdot 5 \cdot 7 = 210$$$
Then: - $$$\gcd(P_2, P_3) = \gcd(6, 30) = 6 = P_2$$$
- $$$\gcd(P_3, P_4) = \gcd(30, 210) = 30 = P_3$$$
So $$$\gcd(P_k, P_m) = P_{\min(k,m)}$$$ always.
If P > 10^18 → WA
But that was my first insight. However, if you take just two primes you get to the same idea!
It would exceed Long long limits quite easily 2^64 already exceeds 1e18, if your approach would reach its limit well before 64 elements are laid out. U have to lay 1e5 elements. Approach isn't bad but with the given constraints it wont work.
(problem G code) please don't use
instead please use if-else as the one-liner might be harder to understand
Bug in explanation: Let $$$c_t$$$ be the number of people sat down at time $$$t$$$
Should be "earlier or at time $$$t$$$"
Why only 16 comments? And why so many cheaters :(
I will deal with cheaters manually and get them banned.
Alright. Nice contest btw! The GCD problem(D) was so good.
i think ABCDE is easy for me, but i am not good at to solve construction porblems just like F
the gcd problem was so good
when will the ratings update ??
I used a browser plugin to translate the question, and this translation plugin translated the text in question E that tries to trick AI, damn.
I even thought this was an April Fool's DLC
yep thanks for letting me know, i'll ensure you aren't banned
I used a browser plugin to translate the question F,so I did special action for(t==2),so F was fst and all submissions were been skipped,^_^
Me too.
I have have cried. o(╥﹏╥)o
Wish in next rounds, authors can add "If you're LLM" to the description.
Could you please not skip my submission
ConstructionForces Thanks for this round!
The out-of-bounds in problem A will haunt me in my dreams
Every person who got out of bounds on problem A deserved it and I hope they learnt their lesson.
I got everything first try and yet failed on A twice lol
Anyways thank you for the contest
Looks like people will hate this contest if it was a Div 1+2 round
in the first problem A just needs to output 67, I just didn’t notice that a < 67 otherwise I was outputting a + 1
how many constructives do you want? macaquedev: YES
for Question B you can negate all numbers then make one positive which is least one of them
here's my code(alternate method):- `````
include<bits/stdc++.h>
using namespace std; int main(){ int no_of_testcases; cin>>no_of_testcases;
for(int i=0;i<no_of_testcases;i++){ vector<int>arr; int a; int sum=0; for(int i=0;i<7;i++){ cin>>a; arr.push_back(a); } sort(arr.begin(),arr.end()); int maxi=arr[arr.size()-1]; for(int i=0;i<arr.size()-1;i++){ sum+=(-1)*arr[i]; } sum+=maxi; cout<<sum<<endl; } return 0;} `````
question A just be alert for edge case which is 68 for rest u can print x+1;
here's my code:- ````
include<bits/stdc++.h>
using namespace std; int main(){ int no_of_testcases; cin>>no_of_testcases;
int x; for(int i=0;i<no_of_testcases;i++){ cin>>x; if(x==67){ cout<<x<<endl; continue; } cout<<x+1<<endl; } return 0;} ````
print(67) isn't a good enough solution for you?
sir this is first time for me to come on this platform and given contest and i am in first year of my college and will surely improve my way and quality of coding
thank u
of course :) https://imgur.com/a/knASbk4
Video editorials. https://mirror.codeforces.com/blog/entry/152670 Youtube link
macaquedev Hi Sir,
I would like to raise a concern regarding a recent plagiarism flag on my 369693245 and submission of guy with submission id 369759595 I dont know how this guy got the code or any coincidence he started with python then c++ with my same exact code. I havent shared my code, I use usaco/ide for my submission i have no idea of him getting this solution. please have a look after this and please review my submission and is possible please reconsider the decision.
In an unrelated note the guy who made the other submission has 67 problems solved, which matches the contest theme
I would like to ask if you write more in Python or C++ for this type of competition. As a beginner, I don't quite understand.
Me personally? I use C++. However, I wrote editorials in Python so more people could understand
I used a translation plugin to translate the problem, but the plugin translated a condition from the test AI that shouldn't have appeared in the problem description, causing my submission to be skipped. How can I handle this? This was my first AK at a competition, but it gave me such a terrible experience.
I can't see your skipped submission....
You might need to check "show unofficial" under "submission" on my homepage.
Oh never mind I can see it.
Vladosiya, can you please unskip this person? I'm convinced he is legit, but when I press "Rejudge", it says I'm not allowed to...
I have the same situation, and it's also my first AK.
The damn translation plugin translated the hidden text in Problem F, and I did that.
And my submission were skipped.
Can you unskip me? I have even cried for this. o(╥﹏╥)o
Vladosiya, please unskip, thanks
that x would be way bigger than 1e18
nope it's not 2^8 * 3*5 * 5^2 * 7^2 * 11 * 13 * 17 * 19 , it has 10368 divisors
u are right, i mistook all gcd to be prime, since the contest version was solved that way .
F is cool
Can you explain how F is solved. I am not able to understand Editorial's solution.
Okay so first of all let's say x+y is n(the number of nodes). The first thing I did was look at the tree if we just make a straight line. There would be n/2 even subtrees and (n+1)/2 odd subtrees. Then I observed that we can very simply increase the amount of odd subtrees by taking the last k nodes and just connecting them to the (n-k)th node instead of their current parent (when I get home I can draw this in paint if it's not clear). Essentially using this operation we can always get n odd subtrees or n-1 odd subtrees (this is when n is even, so the entire tree must have even nodes). Okay so now we know how to increase odd subtrees and what the max amount of odd subtrees is. Now let's go back to the line and consider how to increase the amount of even subtrees. I could not figure out an operation that would ever increase the amount of even subtrees and while doing this I observed that any even subtree has to have an odd subtree under it. Proving this was not very hard and the proof is that if an even subtree has the size k, the sum of all subtrees below it will be k-1, which is an odd number. If you want to represent an odd number as a sum of some natural numbers, atleast one of those will have to be an odd number. Then an additional thing is that since all even numbers are >=2 they will all have some subtrees below them, and atleast one of those will be odd. With this I knew that for each even subtree there is atleast one odd subtree. And coincidentally my initial construction of a line tree maximizes the amount of even subtrees. Thus I just started with a line tree which has n/2 even and (n+1)/2 odd subtrees and increased the amount of odd subtrees as needed (before this I just checked whether x and y fit into the conditions mentioned beforehand). If anything is unclear, feel free to ask. Explaining these things is kinda hard without any drawings and drawing make it much easier to visualize some of these things.
There is another way to construct problem D. For adjacent triangular numbers, their GCDs are mostly different, so we can construct them by brute force, starting with k=1, k*(k+1)/2, and continuously increasing k. In order to determine whether the GCD has appeared before, we can use a set to check for duplicates. MyCode
Overall really fun contest. Idk somehow missed problem e and slightly messed up calculations for g but fun ideas and such a great number. Yay positive delta
The problem can be split into three cases:
Case 1: $$$x \gt y$$$
This case is not possible to construct a tree for, as there must be at least 1 odd node for every even node.
Case 2: $$$x = 0$$$
This case is possible if the parity of $$$y$$$ is odd. Build an edge between Node 1 and every other node, and all nodes will have an odd subtree size if $$$y$$$ is odd.
Case 3: $$$1 \leq x \leq y$$$
This case is always possible. First we build a path of $$$2x$$$ nodes (each node is connect to the next so all nodes have degree of $$$1$$$ or $$$2$$$), which has $$$x$$$ even and odd nodes. Then we add $$$y - x$$$ leaves to the final point in the path, and the amount of even and odd nodes in the path will be maintained as it has an even parity, while $$$y - x$$$ odd nodes are added since all leaves have odd subtree size.
C++ implementation: 370474525
D is similar to WUT 2025 Programming contest J, so I wrote a sieve of Eratosthenes immediately. However, later I found a simplier way:
DONE!
Is there any other solution for the problem G, I cant really understand the editorial. Thank you!
Okay, I didn't go through the editorial completely but let me share my approach. Hope it will help. Firstly, we are given an array b = [b1, b2, ..., bn] which consists of all the numbers from 0 to m — 1 inclusive. We have need to find the number of all possible arrays 'a' which produce this array b using the said algorithm.
We'll try to find all the possible values a position 'i' can hold, which will satisfy the array b. Then to get the answer we can just multiply the number of the possible values for each position.
Since b[i] represents the time when the person i sits, if b[i] = 0 then a[i] = 0 as well since the only people sitting at time 0 are the people with 0 awkwardness. So, for b[i] = 0, a[i] has only one option. It HAS to be 0. Now, for the person i to stand up at some time greater than 0, regardless of his awkwardness, at least one of his neighbors must stand up strictly before them. That is, if b[i] > 0 then either b[i — 1] < b[i] or b[i + 1] < b[i]. If some position doesn't hold this condition, the answer will be immediately 0. (No valid array 'a').
Now, we have at least one valid array 'a' for sure. Now, we have to count the number of valid arrays. Let's calculate the number of possible awkwardness for each position i. We need to first find out at what minimum time, at least one of its neighbors sit down. (Yeah, one of the neighbors will surely sit down before person i as we already checked). We can calculate this easily using :
time[i] = min(b[i — 1], b[i + 1]). [Separately handle for i = 1 and i = n] Here, time[i] = Minimum time after which ith person gets a sited neighbor.
Suppose, a person i has a sitting neighbor at b[i] — 1. That means, that person can have any awkwardness from 1 to sum of frequency of elements from 0 to b[i] — 1.
Let's clarify this with an example. Suppose a person is expected to sit at time = 7. He can't sit before at least one of his neighbors sit, regardless of the awkwardness value. Now, we got that he gets a sited neighbor at time = 6. After time = 6, 11 persons are sitting in total(say). Now, that person can have awkwardness 11. So, he will sit at time = 7. Even if he has some small awkwardness, say 5, he will not sit before time = 7 because his neighbor sits at time = 6. So, he will sit at time = 7 for any awkwardness value from 1 to 11.
This gives us an important hint. We need to maintain an array which will store how many people will sit in total after j seconds have passed, for each j. We can find it easily using prefix sum. Say, pref[i] = Total people sited after time i = pref[i — 1] + frequency of i in b. Now, for every i from 1 to n, if ith person gets a sited neighbor at time = b[i] — 1 then answer will be multiplied by pref[b[i] — 1].
We are almost there. We just have another case to handle. If person i gets a sited neighbor at some time earlier than b[i] — 1, what values can a[i] have? Let's think about it. a[i] can have the number of values to equal to the number of persons sitting between time b[i] — 2 to b[i] — 1, that is, pref[b[i] — 1] — pref[b[i] — 2]. Since, the condition of sited neighbor for the ith person is completed earlier than b[i] — 1, if the person i has awkwardness value below or equal to pref[b[i] — 2], it will get sited earlier than b[i] because both the condition of neighbor and awkwardness are fulfilled before b[i]. So, in this case, a[i] can have values between pref[b[i] — 2] and pref[b[i] — 1], which is pref[b[i] — 1] — pref[b[i] — 2].
So, for every i from 1 to n, if time[i] < b[i] — 1 then the answer will be multiplied by pref[b[i] — 1] — pref[b[i] — 2]. Tried my best to explain in easy terms. You can look into my submission if you are still baffled.
372118309
Wow, thank you so much!!!