Finding number of average elements

The question is to find the number of average elements in an array .(http://opc.iarcs.org.in/index.php/problems/AVERAGE)
I know that this can be made efficient but I wanted to try to code the NxNxN solution as well. However, it’s giving a wrong answer. What am I missing?

#include <iostream>
#include <algorithm>
using namespace std;
 
int main() {
 
        int n,a[10001];
        int count = 0;
        cin>>n;
        for(int i=0;i<n;i++)
        cin>>a[i];
        for(int i=0;i<n;i++)
        {
                for(int j=0;j<n;j++)
                {
 
                        for(int k=j+1;k<n;k++)
                        {
                               if(((a[k]+a[j])==2*a[i]))
                                {
                                	count++;
                                }
 
                        }
                }
 
        }
        cout<<count<<endl;
        return 0;
}
1 Like

Can you explain what you have done?

The question is, what is the result for input

3
1 2 4

if it is 1 or not…

The question asked is to count the number of average elements and not the number of possible pairs whose average value is in the array.

So if you have a case like this

5
1 2 3 4 5

The answer should be 3 and not 4.

Because 1+3=2* 2 (count=1), 1+5=2* 3(count=2), 2+4=2* 3 (this should not be counted as a[2] is already counted as an average element in the previous case(1 and 5).), 3+5=2* 4(count=3)

3 Likes