## lunes, 29 de agosto de 2016

### Github Page with GoDaddy Custom Domain Problem

Hi, I received a mail from github like this:
" The custom domain for your GitHub Pages site ****/****.github.io needs attention.

The domain ****.com is pointed at an invalid IP address that will cease to work on August 21st, 2016. You must take immediate corrective action to ensure that your site remains available.

Please follow the instructions for setting up a custom domain with GitHub Pages to update your site's DNS configuration:

https://help.github.com/articles/using-a-custom-domain-with-github-pages/

https://github.com/contact?form%5Bsubject%5D=Pages%20IP%20Deprecation

- The GitHub Pages Team

==============================================
You are receiving this email because you host a website on GitHub Pages which requires immediate attention.

Unsubscribe ****@****.com from this list:

GitHub, Inc
88 Colin P Kelly Jr Street
San Francisco, CA 94107
USA"

I had already set my custom domain and it was pointing to my github correctly.  But since some days it wasn't redirecting properly.  The only thing that I had to do to fix it was to update the domain dns record named "@" from "199.27.76.133" to "192.30.252.153" to do that just follow the steps below:

1. Go to domain -> all domains.
2. Go to settings from your domain and select admin dns option.
3. Edit the registry named "@" and put the new github page ip: "192.30.252.153"
And thats all, now I have my domain working perfectly.

You can see more detailed information from this blog: http://andrewsturges.com/blog/jekyll/tutorial/2014/11/06/github-and-godaddy.html

Bye!!!

## miércoles, 3 de agosto de 2016

### Equilibrium Index of Array

I was waiting for do a test for a job and they send me a codility test.  They have a demo task about the equilibrium of array.

"

A zero-indexed array A consisting of N integers is given. An equilibrium index of this array is any integer P such that 0 ≤ P < N and the sum of elements of lower indices is equal to the sum of elements of higher indices, i.e.

A[0] + A[1] + ... + A[P−1] = A[P+1] + ... + A[N−2] + A[N−1].

Sum of zero elements is assumed to be equal to 0. This can happen if P = 0 or if P = N−1.

For example, consider the following array A consisting of N = 8 elements:
A[0] = -1 A[1] = 3 A[2] = -4 A[3] = 5 A[4] = 1 A[5] = -6 A[6] = 2 A[7] = 1

P = 1 is an equilibrium index of this array, because:

• A[0] = −1 = A[2] + A[3] + A[4] + A[5] + A[6] + A[7]

P = 3 is an equilibrium index of this array, because:

• A[0] + A[1] + A[2] = −2 = A[4] + A[5] + A[6] + A[7]

P = 7 is also an equilibrium index, because:

• A[0] + A[1] + A[2] + A[3] + A[4] + A[5] + A[6] = 0

and there are no elements with indices greater than 7.

P = 8 is not an equilibrium index, because it does not fulfill the condition 0 ≤ P < N.

Write a function:
function solution(A);
that, given a zero-indexed array A consisting of N integers, returns any of its equilibrium indices. The function should return −1 if no equilibrium index exists.
For example, given array A shown above, the function may return 1, 3 or 7, as explained above.
Assume that:
• N is an integer within the range [0..100,000];
• each element of array A is an integer within the range [−2,147,483,648..2,147,483,647].
Complexity:
• expected worst-case time complexity is O(N);
• expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).
Elements of input arrays can be modified.
"

$$\sum_{\substack{ 0\le i\lt N}} A_i=k$$

Suppouse that p is an equilibrium index, then

$$\text{ (1) }\sum_{\substack{0\le i\lt P}}A_i+A_p+\sum_{\substack{P\lt i\lt N}}A_i=k$$
Where
$$\text{ (2) }\sum_{\substack{0\le i\lt P}}A_i=\sum_{\substack{P\lt i\lt N}}A_i$$
From (1) and (2) we can conclude that:
$$\text{ (3) }2* \sum_{\substack{0\le i\lt P}}A_i+A_p=k$$
We can rewrite (3) and then we can conclude that p is an Equilibrium index if:
$$\text{ (4) }k-2* \sum_{\substack{0\le i\lt P}}A_i=A_p$$

Now we can write the code to solve this problem, I will use javascript on this case:

function solution(A) {
var total=0;
var sum=0;
for(var index in A){
total+=A[index];
}
for(var index in A){
if(total-2*sum===A[index]){
return parseInt(index);
}
sum+=A[index];
}
return -1;
}

This was the result:

You can see the results on this link: https://codility.com/demo/results/demoX2XQGX-U7K/