| # | User | Rating |
|---|---|---|
| 1 | Benq | 3857 |
| 2 | jiangly | 3810 |
| 3 | maroonrk | 3534 |
| 4 | tourist | 3528 |
| 5 | Kevin114514 | 3510 |
| 6 | turmax | 3411 |
| 7 | Um_nik | 3387 |
| 8 | Radewoosh | 3367 |
| 9 | heuristica | 3322 |
| 10 | strapple | 3317 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 158 |
| 2 | maspy | 150 |
| 3 | Um_nik | 146 |
| 4 | Errichto | 139 |
| 5 | adamant | 136 |
| 6 | maroonrk | 134 |
| 7 | DNR | 133 |
| 8 | Dominater069 | 131 |
| 9 | Proof_by_QED | 130 |
| 9 | AmShZ | 130 |
|
0
I am certain this question arised because I didnt explain the dp state properly. xsum_i is the xor of all numbers which can be placed from position i to the end, with the limit of what digits i can place as o and u (read code). As you can see my function in fact returns xsum_0 at the end. The algorithm is simple once the dp state is clear. Focus the number built from index i to the end. You place a digit, and you find the new digit bounds, and then you use the calculations for the rest of the bits. Now the digit you placed, whether it will contribute to the final xor will depend on how many times numbers with this bit on, appears. Again, focus on the number built from i to the end. Amongst all possible numbers, the numbers with the bit on (at i) will be equal to the count of the possible ways in which i can place bits from i+1 to end with the digit bounds induced by placing the digit at position i onto the subsequent bits. This count, we are also storing in our dp states. We do not care about the previous digits for this particular dp state. To think of it iteratively, we start from the last bit, calculate all the dp states from that bit with all possible different digit bounds, then move to the bit before it, do the same and use the calculations already done for the bit just in right of it. If anything is unclear text me again. |
|
+1
every overkill solution solves something more than necessary, so i am curious, can your solution solve for a variation of this problem where instead of k increasing by 1, k increasing += b[i] where b is an array of points you get for each time your x > a[j] and j is the i'th contest you measure against? In the original problem you can think of b as an array on only 1s. |
|
0
dsu and z function cuz thats all i know |
|
0
A number mod power of two, $$$2^i$$$ is just the last $$$i$$$ bits in it's binary representation. We can use digit dp in the following way: Suppose you want to build an n digit binary number. Pick a digit (0/1 in this case) and place it at the leftmost space, you are left with n — 1 digits, now you need to count how many numbers are possible to be built in total after placing those n — 1 digits. To do this simply recursively start to add digits and keep track of whether the number you have built so far is a valid number or not. When you reach the end of the number, if the build is valid you return 1, otherwise 0. You can very efficiently count the possible valid numbers you can place in those n — 1 spots. Now if the count is odd then you know that your current digit (which you picked first) will appear in the net xor sum (If the picked digit was 1 of course, if it was 0 then it won't appear anyway), hence you can store this net xor sum by the following line: $$$xsum_i$$$ ^= (1 << (n — i — 1)) ^ $$$xsum_{i + 1}$$$ for both the digits 0/1 which you put in ith spot. This represents the transition. To store both the count of how many times the build starting from ith place to the end appears and xor of all such numbers can be stored separately in two different arrays or you can just use a pair or array<int, 2> like I did here: 290112812 |
|
0
I couldn't find a better solution either, the best I could do was the same as you, I guess I should attach my code in case anyone in the future wants to know. Code: |
|
0
Right, this problem is indeed NP-Complete. |
|
+1
Well again, I am sorry but that is a wrong greedy. |
|
0
Just writing whatever comes into my faulty memory at this point, but I think I faced a similar problem in an OA once and later found out that such problems are solved my building a graph out of it and determining the maximum flow or something similar on that line, I am not educated on the algorithm yet. I dont believe theres a simpler solution but I'd be happy if someone figures it out. |
|
0
And how will you determine which side of the range to insert it on? |
|
0
Yea well I am curious about the solution, share it in my DMs if you are comfortable sharing here i guess? Thanks |
|
0
Why dont you post it here so everybody can ser |
|
0
Try to solve a few problems on the complete search section of USACO.guide I would suggest trying to think in similar lines of how we think of dynamic programming. In fact tutorials for dynamic programming may exactly be what you need to fully understand how to use recursion. The overall goal is always to define a state and break the problem into indepedent subproblems and instead of focusing on actually solving the problem, we focus on how we transition from the sub problems to the higher problem. Its a personal rant but recursion in my humble opinion is actually a very difficult thing to fully grasp, especially when one is starting out. I still don't understand why it was taught to me and many others even before pointers and stuff, as If their difficulty in terms of understanding and applying is even close let alone being easier. But keep practicing obviously, it becomes second nature soon enough. |
|
0
I read a little bit of that code and it seems the code cant really solve for a number NOT a power of 2 (the constant time solution doesnt either). If I understand correctly you are checking if the first i bits of the number are different or not and xorring the remaining numbers. Can you extend your solution to range xor with a similar constraint but % x where x can be anything? |
|
0
Very well written. I just thought of xorring f*2^i for all f such that k + f * 2i is within l and r. since k has lesser bits than ith bit, we can treat their xor independently. as for the xor of f * 2 ^ i, we can think like normal range xor but all the xorring is happening starting from the ith bit instead of the first bit so the result is just the range xor of all f, then shifted by i, and as for the k, if there are even f's then 0 otherwise k. |
|
+1
That's cuz I guess we can do it O(1) using range xor properties. |
|
0
Influence of changing one bit only reaches a few segments of length 4, so each query can be processed in constant time after you have calculated the initial amount of 1100 in linear time. |
|
0
damn i am not skilled at greedy problems at all... |
|
0
By preferred I mean the arrangement that you propose to be solution, and the optimal is a hypothetical arrangement which has the optimal answer, but not necessarily same as your proposed arrangement. By the end of the argument the goal is show that the preferred solution is optimal itself. Note thatseveral different solutions nay all be optimal, you just need to show yours is one of them. |
|
-10
. |
|
0
I did the following: swap $$$a_i$$$ and $$$a_{n - 1 - i}$$$ if either of these elements are same as their outer elements. By outer elements I mean the element just left of $$$i$$$ and just right of $$${n - 1 - i}$$$ respectively. The final array by iterating till the centre of the array is the optimal arrangement. Proof: Consider an optimal arrangement. we will show that any optimal arrangement can be transformed to our preferred arrangement without worsening the answer at any part of the transformation. Starting from the outermost pairs of elements ($$$0$$$ and corresponding $$$n - 1$$$), let's say the first relative order of elements we encounter which is not arranged according to our preference is between $$$x - 1$$$ and $$$x$$$. Now if we swap all the elements from $$$x$$$ to $$$n - 1 - x$$$, they will preserve their relative order, and thus the disturbance for all the elements in the segment. In fact the only thing that changes is the relative order between indexes $$$x$$$ and $$$x - 1$$$ and the corresponding pair on the other side of the centre. So the overall answer will only change due to the change in this part, which we can easily show, will not worsen if we swap it. We can continue to find such out of order indexes and swap them to our preference and none of these flips will worsen the answer. Thus, irrespective of the optimal arrangement, we can transform it into our exact arrangement, and the disturbance never got worse. Hence our arrangement algorithm in fact provides optimal arrangements itself. |
|
+2
thats true for increasing your rating, but he mentioned he learnt nothing from the contest, and trying to prove any greedy solution is of course an enlightening activity. |
|
+23
If you think greedy is guessing, then maybe you can try learning how to prove your greedy solutions ;) |
|
0
The period of multiples of k will not exceed 6*k wikipedia |
|
+3
C is greedy with a not so difficult exchange argument proof? |
|
0
Would you be aware of any source where I can read about the conjecture for lists of size three? I couldn't find any articles or papers on this topic myself so I need a little a help, thanks! |
|
+6
Ormlis In D2C, how can we solve the problem for arrays of sizes three or more? I tried to solve it by comparing inversions of ab and ba for sorting but it seems this condition is not transitive and thus doesn't work for arrays of twos either, so I had to use some other min/max technique, which doesn't seem to generalise for sizes more than 2. |
|
+3
What's the point of B? I've solve this problem at least twice before. |
|
0
What's the complexity of this? |
|
+3
Good contest, I explained the entire process of how to do D (div 2) and GPT-o1-mini still couldn't solve it. Prompt explanation + problem (separately): Use this technique below: for each number from 1 to n, maintain two arrays start and end , signifying the index of the first and last occurrence of the number. if there is no occurrence initiate it as -1. fact: there must exist a subarray of size j such that all occurrences of numbers upto j occurs inside that subarray for all j from 1 to n. Now the given array is valid iff it passes the following procedure: first we start with 1, if there is no occurrence of 1 we ignore it, in general say the first and last occurrence of 1 is in l and r, then r — l + 1 <= 1, next we go to the occurrences of two, if no occurrence then same thing as before, otherwise r — l + 1 <= 2. note that this new r and l is obtained by extending the previous l and r by the first and last occurrences of this number 2, basically within this new range l..r all occurrence of 1 and 2 must be present. we keep doing this for all the elements and if we can reach the end without any violation then we can in fact start from somewhere. On the procedure of finding where we can start, but with an example: 6 3 3 5 4 5 1: no occurrence implying our staring range: 1 to n 2: no occurrence implying our starting range: intersect the range of 1 with the range of two ( 1 to n again), which is also 1 to n. 3: l = 2, r = 3, and this range of length two should be contained inside a subarray of length 3, there are two such subarrays, and in fact we can start from anywhere between 1 and 4 and still be able to cover this range, so our current starting range is the subarray range 1 to 4 intersected with 1 to n, which is just 1 to 4. 4: new range of all occurrences till 4 is 2 to 5, and only one subarray satisfied it with range 2 to 5, so our valid range is 1 to 4 intersected with 2 to 5 which is 2 to 4. 5: so on our final valid range is 2 to 4, so there are 3 valid starting points convert this logic into code In case anyone is wondering, I have written a code with the exact same logic and it is AC. You can check it out on my submissions. Good news is, despite several attempt and demand of direct conversion of logic to code without adding its own logic, it could not produce a code which solved even TC 1. This implies GPT-o1 really isn't something we should worry about for now for div 2 and above. Not only can it not think critically, it cannot even follow basic logical instructions. |
|
+15
Did not say you didn't. I liked the contest. I just think checking with o1 was a responsible thing to do, given that setting a problem affects many other. But then again it was Div 3 so meh. |
|
-13
Bruh the free version? About time mike provides o1 API to problem setters. Don't you think testing with the free version was kinda stupid (no offence), given that all the talk was specifically about the "new" model? |
|
0
thats WA? I thought you meant you had a greedy sution for F.. |
|
0
Explain? |
|
0
For maximising the minima, I tried to greedily increase each element without lowering the current maximum minima till the ith index by trying to make it equal to the average till now (only possible if avg was higher than element at i) doing so may result in increasing the minima but never lower it. We dont make it more than the avg since it risks decreasing the global minima till now without ever increasing the global minima. We also dont leave it lower than the average since we always can make it equal to the average guaranteed to not reduce the global minima. If the avg was however smaller than element, then then we would leave it as is and take care of it in future iterations as the elements which gets decreased when an element is increased to its avg. I did it separately for the maxima and subtracted the and to my surprise it was AC lol. |
|
+3
It's too soon to imply the end. I am an avid user of ChatGPT (not that I use it solve problems during contests). The mini model as of now is not strong enough to even discover basic patterns in problems, let alone think critically. You could think of the model as a friend with a brilliant memory. Someone to have an intellectual conversation with, without expecting too much input, other than getting the basics checked. I have tested the current thinking models as much as I could, given the prompt limits and my opinion on the strength of the AI model has changed. The model is still good to teach you some basic non critical techniques or theorems very thoroughly. |
|
+2
Watch great teacher onizuka to improve. |
|
0
I hope the problems are thoroughly tested to be non standard. Thanks for making the round! |
|
0
The only way to not die in this era is to grind harder than ever to reach atleast CM so the AI solutions dont affect you. |
|
0
That solves very little. The AI can be used for much more than just copy pasting. It can explain the solution to you and you can write it yourself. There is no way AI activity can be detected in such cases. |
|
0
o1-mini. |
|
0
I like the such useless philosophy. But then again its not completely useless if it is something that can be liked. |
|
0
I tried it without any hints and it couldn't solve it (check my recent submissions for o1's solution. As I said, without any proper direction or hints the model is still not very dangerous. With that I wanted to test how o1 would handle the problem when I gave it a little hint and direction and as expected it ACed. You can check my submissions for all of these results. |
|
0
I have done some research on this on a burner account, and I have observed that o1-mini only needs a little right direction even for non standard problems and it can produce very good results, ACing in most of the problems I attempted in the rating range of 1400-1800. Other than that, the AI can now complete my code for me if I make functions for specific purposes, and add a little comment on what it does. Earlier attempts for the same setup resulted in bad results but now it can correctly complete my code for me, if I have any idea at all how to approach it. Based on this, the rating of the model increases much higher than just 1600 (as claimed) if you add a little bit of that human touch and the monstrous speed. Conclusion: Many people can reach CM/Master now with understanding just a fraction of the process. |
|
0
Best list (objective): Jiangly Kapt Bashkort |
|
+1
The AI can still perform very well if you add some insights and observations without fully copy pasting the question. |
|
On
Mindeveloped →
How to find an appropriate difficulty range for daily problem solving?, 2 years ago
+16
You tell me master. |
|
+3
bruh |
|
+1
Is there a bound on the range of numbers the matrix can have? |
|
On
BLUmOOn →
doubt in problem 1677A-Tokitsukaze and Strange Inequality and unable to understand from editorial, 2 years ago
0
I have explained exactly that in my comment above, anyway here 280160949 is an implementation of the problem, study the part where I use difference arrays to calculate the inversions in range. You might wanna familiarise yourself with 2D prefix sums. |
|
On
BLUmOOn →
doubt in problem 1677A-Tokitsukaze and Strange Inequality and unable to understand from editorial, 2 years ago
0
inv[i,j] = count of all pairs x, y in the range i, j st x < y and a[x] > a[y]. we are fixing one of the conditions iteratively (a and c) now we only need to handle b, d. we actually need inversions in st one the element of the pair lies inside the range of a and c and the other one lies beyond c. We can calc it as he clearly explained the his first commen. You only need to precompute the inversions in range. As for the preconputation you can follow a strategy of picking an inverted pair i, j and using a 2d difference array to update all the subarrays where both of these indices come. You initialise the difference array such that the prefix sum of it will add 1 to the region where its row <= i and column >= j. At the end prefix sum the entire difference array to obtain your precalculation of inversions in n^2 |
|
0
you got this! |
|
0
Indeed for the forst character there are only two possible paths, however in general, all dp states needs to be transitioned properly, a state will automatically end up as "inf" if as you are implying, was unreachable. |
|
0
Lemme explain, What ItsNotMeItsYou has defined is this: dp[i][j][k] = minimum cost to build a k parity array from prefix i, and j is whether you have used a removal operation yet or not. The transitions are better explained by looking at his code directly, but the general idea is to understand that when you want to build an even parity alt string with prefix i, then if: if your current character s[i] is suitable to take the place of the end of the string you are building that that's always optimal. Obviously then you would have to "pull" the rest of the answer from dp[i — 1][j][!k], !k because when replacing the alt string's last char, we would be building the rest of the string of a different parity. It's always a replacement unless we are making the deletion (obv!). Now the "only one deletion" bit is not to difficult to infuse from here, if you trying to figure out the transitions of a state like dp[i][1][j] it can be pulled from two different states actually, which corresponds to whether you have already used up your operation (in which case you will pull from the dp[i — 1][1][!k] state, a replacement) and if you are going to use the operation on the current s[i] itself, in which case you need to pull from a dp[i — 1][0][k] state, note its k and not !k, because deletion will not change the parity of the string we are willing to build, we just need to "borrow" what i — 1 has already calculated. Note that now the problem can be extended even more freely by changing the cost of the operations. Since we are taking care of every transition, adding the cost of deletion whenever we are deleting and similar for replacing and doing nothing (cost 0) is not a very difficult extension to the problem. |
|
0
As far as I understand bases, 1 and 0 are the indexes. The indexes also represent the weights, hence lexicography. So the string corresponding to 10 is BA. |
|
0
ty |
|
+1
Lmao I think that klu... whatever guy cheated again. This is funny and confusing at the same time. Are they really that dumb? |
|
0
Also, changed the line you pointed out and it's working. 274963920 |
|
0
Hmm now I get it, I though about this problem of bl and br being equal at the last moment, and as you can see I did something about it in the last moment in my last WA submission for B. But maybe due to crunch of time I left some cases. Thanks I lot, now I feel good. I saw jiangly's solution anyway. To see what he did is to first observe that there is symmetry in the order of checking winning games. Say we flip a random card from Suneet and Slavic, then the other ones are fixed to be picked on the second round, moreover Those other two cards if picked first would produce the same final score. With this observation we can fix picking a1 first, then whatever I pick from b, I check whether my points are greater than the opponent. we do a1 with b1 and a1 with b2, get the result and multiply the answer with 2, because the case of a2 will conclude in symmetric final results. |
|
0
that part was a last ditch attempt at doing whatever to get AC, the code I actually wrote must be my second last WA submission for B. |
|
+2
I will kill myself over B. UPD: Found my error |
|
0
No I did that, I did everything. I literally considered every possible way the numbers can be arranged relatively on a number line and this WA. |
|
0
I still don't understand how to solve B. I literally checked every possible case by hand. I don't know what's the right way to feel about this but I am furious. |
|
0
Can anyone explain, why in D, we are having to separately consider the case when I % k == 0, This is my code as I don't understand where it goes wrong: Code: |
|
+3
ight mb |
|
-10
mfs downvoting me for being right |
|
0
The fastest primality test currently is AKS, in 6th power of the logarithm. Essentially making it polynomial in bit size, hence making PRIMES a part of P. |
|
+9
Cheaters most probably, no matter how easy it was aint no way 12k people solved it suddenly. Also I noted that it happened too quickly. One moment my rank is 2.5k, within minutes it's 6k. But whatever. |
|
0
Very cool, much more intuitive. I like it. |
|
0
Maybe noting this instead is better: The least significant bit of a — b and a ^ b are the same. So their divisibility by a power of 2 is always the same. |
|
0
For linear time we can just iterate a from 1 to n and check if the corresponding b is in 1 to n or nah. I think OP is asking for a sublinear algorithm. |
|
0
My bad, you still need to check if the corresponding b is <= n, so n — 1 is not correct, in general it is less than that. So I failed in my attempt to make it better than O(n) |
|
0
Check my comment |
|
0
Let us note that $$$f(x - 1) - f(x)$$$ will mean how many element can start from $$$x - 1$$$ [check the last paragraph], because an increase in count between consecutive arguments can only occur if the smaller one is having some elements start for that argument, If x is the smallest value for which our $$$f(x)$$$ is $$$\leq k$$$, means $$$f(x - 1) \gt k$$$. This means that $$$f(x - 1) - f(x)$$$ number of elements have started from $$$x - 1$$$. We have $$$k - f(x) \lt f(x - 1) - f(x)$$$. Therefore the number of elements which will start from $$$x - 1$$$ is larger than the leftover operations. By elements starting from a number, I mean lets say $$$a_i$$$ = 7 and $$$b_i$$$ = 4, and $$$x$$$ = 4, then the AP of elements we can pull from this index is 7. Hence this element "starts from" 7. Also, within this example, consider what happens when $$$x$$$ = 3 (instead of 4), the AP of elements we pull is 7, 3. There is an increase in count from 1 to pulling 2 elements, and this change occurred because an element started from 3, (this 3 will not be pulled from this index if our $$$x$$$ is 4, but it will be ready to be pulled from the leftover operations). |
|
0
When we pick the $$$x'es$$$ first with all we have, and then pick the $$$x + 1'es$$$, it is very obvious that this option makes us pick the most "number" of flowers (not petals). Then we shift some $$$x'es$$$ to $$$x + 1$$$ as long as we are $$$\leq m$$$. Intuitively, if we are limited to buying exactly this number of total flowers, the sum of petals after shifting certain $$$x'es$$$ to $$$x + 1'es$$$ is the best we can do. Want to increase $$$x$$$? We are already at max $$$x$$$, want to increase $$$x + 1$$$? Then we are decreasing the sum. Want to increase both? Not possible since we would be going beyond the maximum flower count. Let's say our configuration has a, b flowers, and there exists another configuration with greater sum, having p, q flowers and p + q < a + b. Then we get $$$x \cdot (p + q) + q \gt x \cdot (a + b) + b$$$. Implies $$$q - b \gt x$$$. Meaning our count of $$$x + 1$$$ in configuration 2 is exceeding the count of $$$x + 1$$$ in configuration 1 by at least x + 1. Now we are obviously left with a lot of $$$x'es$$$ to be picked in the second configuration, due to $$$p + q \lt a + b$$$ and $$$q - b \gt x$$$. Which implies $$$x \lt q - b \lt a - p$$$, meaning we are left with at least x + 1 more unused $$$x'es$$$ from c1. If the count of $$$x + 1$$$ in c2 is exceeding that of c1 by at least x + 1, then consider x $$$x + 1'es$$$. All of those extra ones can be collected together to form an $$$x$$$ and all those $$$x + 1$$$s turn into $$$x'es$$$, together forming x + 1 $$$x'es$$$, (increasing the flower count by one). Which we indeed have to spare. We can keep doing this as long as total count of the configuration is less than our original one. Every other configuration will be reduced to our total flower count, for which we already have the maximum sum! The intuitive path on how to think about it is to first realise that the max petals sum comes from a configuration with maximum flowers picked, just as a guess, since this is not true in general for example m = 14, and petals are 3 and 7 respectively instead of consecutive. Overall it is one of this luck based problems, where you win if it clicks or you lose typa problem. |
|
0
What if no buddy in CP? |
|
0
Jiangly, Bashkort, Kapt. In that order. Tourist writes clean too. |
|
0
Your expected output is wrong, I don't know how you got there. Stress test it or find my implementation below, both produces 520093663. |
|
0
Implementing The-Winner's solution cuz I liked it. Other than that, maybe it can be useful for some people: Code |
|
0
269300957 Pretty cute implementation for C id say. |
|
+4
For B I did some uninteresting wack shit. Someone explain Jiangly or Tourist's solution for B please? They did something like % 4 = 1 then 1, % 4 = 3 then -1 and % 2 = 0 means 0. |
|
0
Hi nor, three weeks ago I asked you for these sources. With the help of the sources you mentioned and studying different resources from the internet, especially all the sources mentioned in USACO guide and CP algo plus practicing decent amount of problems, I am now confident in the basics of modular arithmatics for CP. Felt like I owed some gratitude and hence this comment. |
|
+1
Thanks, got what's going on. So you do greedy till your remaining number is <= 23, then you add the pre-calculation of the remainder. Or I can say, it can be shown that [can it?] the lcm is always >= (the number till which greedy can't be applied) [remains to be proven], and thus following what is done in the code, the remainder will always be , rem >= lcm >= lowest non greedy number, and thus works. Do you have anything to add? |
|
0
For question B, there seems to be a better solution. 249111275 I like this solution by Sugar_fan, because it's linear time per test case after a tiny amount of precalculation. Could Sugar_fan himself or someone who gets it please explain a little bit on the solution? About why taking the remainder between m and 2m works and 0 and m does not? As for the value of m in his/her solution (= 2700), I intuitively expanded on this idea and figured that in general m = lcm(numbers) will also work. As such here is an accepted solution (I simply changed m from 2700 to 30 in the code): 249254380, with 0ms, signifying O(1). |
|
0
When a number in C is not 1, it can be 1 in your good array, when it's 1 it can be 2. Speaking in a "greedy" manner obviously. You can build an auxiliary array like that and compare the sums in the subarrays using normal prefix sums. You can check my implementation : 248017967 |
|
0
Oh my god I love you. Chad community fr, orz nor, imma get started on this right away. |
|
0
Hi, I have observed that modular arithmatics is a frequently occuring topic. I have very limited knowledge about it and I would like to separately work on this topic, would you be aware of any resources which can help me improve? Thanks. |
|
0
The range of the elements in $$$A$$$ go upto $$$10^4$$$ and there can be $$$2 \times 10^5$$$ elements, so the product can go upto $$$(10^4)^{2 \times 10^5}$$$, which is well beyond anything any data type could store, storing the products of the elements modulus M doesn't help much either since once the product becomes zero, recovering the original product back by dividing will not help, to do so you will need to keep track of the factors of M in your current product, which is way too complicated. Alternately you can simulate the entire process in reverse order, I suggest checking the top submissions. Storing the product of modulus will be a simple modular arithmetic problem if you simulate in reverse order. I think the position of task 3 and 4 should have been swapped in the last div 3 contest. |
|
0
Hey good day to you. Can you do mine? I'm hoping to reach 1500 before summer. |
|
+45
jiangly for his readable, concise and brilliant codes. Whether I solve a question or not, I make sure to check his solution and always learn something new especially how to better use the STL functions. What a guy! |
|
0
Merry Christmas! |
| Name |
|---|


