Codeforces celebrates 10 years! We are pleased to announce the crowdfunding-campaign. Congratulate us by the link https://codeforces.com/10years. ×

### Frankenstein123's blog

By Frankenstein123, history, 6 months ago, , So this can be a little bit off-shore to problem solving in general, but I always wonder what to do the best contestants do before a contest. It would be very helpful if they share the pre-contest rituals which help them to calm down, hold their nerves and focus better during the contest. You can take the "before" to be from anything like a day before (does it matter? :p) to anything like 5 seconds before the round starts. By Frankenstein123, history, 7 months ago, , Let's suppose I need to calculate $a^{b^{c}}$ modulo $10^9 + 7$, with the constraints $1 \leq a, b, c \leq 10^{18}$. I can calculate $ans = b^c$ in $\mathcal{O}(log(c))$, with modulo $10^9 + 6$, (probably everyone knows how) and then calculate $a^{ans}$ with modulo $10^9 + 7$.

But how does first taking $10^9 + 6$ and then $10^9 + 7$ work? Can anyone present a formal proof for this? Also are there any other methods to do this? math,
By Frankenstein123, 21 month(s) ago, , So after having searched at a number of places online, I have not yet completely understood how the different methods to fill a particular value at every place in a block of memory in C++. For the sake of clarity, I wish to know how the following methods differ.

1)

int arr = {0};


2)

int arr;
int main(){
fill(arr, arr+100, 0);
}


3)

int arr;
int main(){
memset(arr, 0, sizeof(arr));
}


Please describe the difference in the time complexity and performance of these operations and also what happens when they are used for a higher dimension array, like for declarations of the type int arr;.

By Frankenstein123, history, 21 month(s) ago, ,  #dp,