Target audience: newbies and pupils (rating up to 1400).
Group link: https://mirror.codeforces.com/group/yg7WhsFsAp/contests (hit "join" on the right).
Hi. Enjoy a series of 8 problem lists for beginners. The example topics are strings, arrays, math, and binary search. You are allowed to discuss anything with others, or just look up solutions online. There are also 3 exams, each recommended for a 2-hour individual virtual participation. Use the displayed order, e.g. take exam 1 after day 3. It all should take you 2 weeks of intense bootcamp-like work (or a few months if you take your time).
The problems were originally used two years ago in a Saudi Arabia camp. It's a mix of around 70 existing CF problems and 30 new original problems, mainly prepared by kostka, with some help from me and mustafabar. I asked them for permission to publish everything.
I will put hints to some problems in this blog (or in the group? not sure). Expect a few videos and/or streams for beginners too. You should also read two first chapters of Competitive Programmer's Handbook.
UPD: On Sunday evening I'm making a stream with explanations to a few hard problems: P8, P11, P18, P30, P31, P33. You can try it with hints first:
P08. CashierFocus on gaps between clients: e.g. if gap length is $$$100$$$ and the needed break time is $$$a = 4$$$ then we Vasya makes $$$25$$$ breaks. What's the formula? Don't forget about the gap from time $$$0$$$ to first client $$$t_0$$$, and also gap after the last client until time $$$L$$$.
P11. Queens attack!You need to mark columns, rows and diagonals as already used, in order to quickly say if a new position is available. An example of cells in one diagonal are $$$(2, 6)$$$, $$$(10, 14)$$$, $$$(11, 15)$$$. What's common about these three cells? Figure out the easiest possible formula.
P18. Mountain peaksConsider each possibility for the number of peaks per day. There aren't that many possibilities!
P30. Temporarily unavailableFind the length of intersection of $$$[a, b]$$$ and $$$[c-r, c+r]$$$. Note that there might be $$$a > b$$$.
P31. Shuffle HashingWe are looking for a substring that is an anagram of the given string $$$h$$$. Two strings are anagrams if the frequency of all 26 characters is the same.
P31. Shuffle Hashing, hint 2Use prefix sums. Or use sliding window.
P33. Thanos SortUse recursion. If you don't know recursion then iterate over powers of two instead, e.g. for(int k = 1; k <= n; k *= 2)
. For every such $$$k$$$, consider splitting the sequence into blocks of size $$$k$$$ because the answer might be one of them.
Thanks a lot :D I'll try to solve all of them in the upcoming days
It is really usefull
Can those not in the rating range specified above not submit ?
Edit : Just checked, they can
You are allowed, but the problems should be easy and boring for you.
you mind putting some more tough questions in there .
These are problems from a camp two years ago. The participants were beginners just after learning basic C++.
Can you prepare another one for 1400 to 1600? I will be very helpful! And thanks for preparing this one. I will submit these problems.
There is no problem numbered P17 in day 2
Oh, you are right. I see now that we removed it back then because it required an algorithm that participants didn't know yet. It was 1041B - Buying a TV Set.
I've renumerated problems.
Reminds me of whenever I say I should start over competitive programming from the beginning since I am not good at the basics.
Great , it will help us a lot.
I have just finished the basics of java and solved 100 URI basic problems and some hackerrank easy problems. need to read the first two chapters of "Competitive Programmer's Handbook". it will take some time. I will try it.
I have a question. if someone wants to try it after 3/4 months will these problems will be there?
Sure. I don't plan to ever hide these problems.
When I try to register it says "you are not allowed to enter", I am new to this platform. how to register for this.
Actually it says " You are not allowed to take part in the group contest "
Come on. Read the top of the blog. Or just scroll up by a few comments.
Any hints/tips on how to solve P48 The line problem
The hint is in the original question already. It gave an unnecessary/redundant information which could have been omitted.
hey there i am trying to solve Day 2 P13 lost rectangle problem for almost a day now and ain't able to come up with a possible solution nor could find anything on the interent to help, coud anyone please help my with some possible idea . I would be realy helpful.
https://mirror.codeforces.com/group/yg7WhsFsAp/contest/355493/problem/P13
Prime is a big hint in itself.
The Area A is made by two integer (as given) sides. So, using this fact you can determine that for any integer to be the height or breadth of rectangle, It should evenly divide the A.
Just find all the prime factors of A, and then say for any factor p, we can treat it as 1 of the side of rectangle. Therefore, the other side is A/p. Now, you have both the side. Find the Perimeter using the same idea for all the factors of A, and print minimum one to the result.
You use one word incorrectly:
"prime" -> "divisor"
If the area is 100, possible shorter side lengths are 1, 2, 4, 5, 10. These are divisors, not primes.
I don't know if it is right to discuss it here, but it is related to a question in this bootcamp. do let me know if I am not supposed to ask or post anything here. I am new to this platform.
In a particular problem if I use.
for(size_t i =0; i<=sqrt(n) ; i++) //The answer gets accepted
is there any difference(in performance)? if yes then an explanation will be helpful.
i * i
overflows. You need to use(long long) i * i
.someone help me solving [problem:P48]
Please help in p54 https://mirror.codeforces.com/group/yg7WhsFsAp/contest/355504/problem/P54. Why XOR works??
XOR of two equal numbers is 0. So also XOR of any even number of equal numbers is 0.
Since someone necro'd this, I request 100 hard problems bootcamp!
Great
Hello, I am trying to solve the Lost Rectangle problem. In my first try, I used normal way to find out the factors which led me to failure because of time limit.
Later I tried to implement sieve for prime factors, and again I got stuck for the 7th test with the input 1000000000000. I took integer which will not support this long. But when I tried to use long long I started getting memeroy stack issues. Also, I am facing the array size limit here as well.
Here is my last submission code: https://github.com/ahsanaasim/problem-solving/blob/main/codeforces/355493/P13-Lost%20rectangle/main.cpp
Is my approach entirely wrong? Or is there a way to solve it the way I am trying
You don't need sieve. You can iterate over all factors in $$$O(\sqrt{A})$$$.
https://mirror.codeforces.com/group/yg7WhsFsAp/contest/355493/submission/200610343
Helpful, thanks.
Hi, can anyone give me hint on problem P44 (math day5)
It is a simple combinatorics problem, think like this how many max dashes can you have?
Then use if we have $$$m$$$ like objects and $$$n$$$ like objects then number of ways of arranging them is simply $$$\frac{(n+m)!}{n! m!}$$$
thanks, it is the firsr time for me to solve combinatorics problem.
Hello there!
I know this post is 3-years long, but I think I found an issue that is worth noting.
Alert: This comment contains spoilers on problem P19 — Mountain peaks.
This code here uses binary search to find the minimum divisor d of n that could be the number of peaks which are visited every day and prints n / d. However, using binary search is not correct since the function here is not monotone, although the submission received an AC verdict.
Here is a test which would make the code fail:
70
1 2 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 1 1 1 1 2 1 1 1 1 2 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 1 1 1 1 2 1 1 1 1 2 1
Also, some other implementations of binary search such as this one passes the previous test but would probably fail on this one:
35
1 2 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 1 1 1 1 2 1 1 1 1 2 1
I hope this matter would be considered.