The article in discussion is Find the largest three elements in an array in c++
But its implementation has a mistake. When they declare the 3 variables (max, max2, max3) they initialize them as:
int max, max2, max3;
max3 = max = max2 = arr[0];
This works fine until the first element of the array (arr[0]) is the greatest element, then there will be no arr[i] which satisfies any of the deciding conditions, which are:
arr[i] > max
arr[i] > max2
arr[i] > max3
Hence, if the first element of the array is the greatest element then max, max2, max3 will be equal to that element to fix this we can just initialize max, max2, max3 with a low infinity like INT_MIN, etc.