Cod sursa(job #649709)

Utilizator idomiralinIdomir Alin idomiralin Data 16 decembrie 2011 16:45:42
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
# include <cstdio>

using namespace std;

int max, n, i, j, ct, frecv[7005], a[9005];
int main()
{
    freopen("medie.in","r",stdin);
    freopen("medie.out","w",stdout);
    
    scanf("%d",&n);
    for (i = 1; i <= n; i++)
    {
        scanf("%d",&a[i]);
        frecv[a[i]]++;
        if (max < a[i]) max = a[i];
        }
        
    for (i = 1; i <= max; i++)
        for (j = 1; j <= i; j++)
        {
            if (i == j) 
            {
                     if (frecv[i] >= 3) ct += (frecv[i] * (frecv[i] - 1) * (frecv[i] - 2))/2; // scazi cate 1 fata de celalalt dinainte, pentru ca ai folosit numarul acela
                     }
            else 
            if ((i + j) % 2 == 0)
                 ct += frecv[i] * frecv[j] * frecv[(i + j) / 2]; // numarul de posibilitati sa interschimbi numerele acelea astfel incat (i + j) / 2 sa fie media lu i si j
            }
            
    printf("%d",ct);
    
return 0;
}