Cod sursa(job #1678072)

Utilizator lflorin29Florin Laiu lflorin29 Data 6 aprilie 2016 23:17:47
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

const int sum_max = 7002;

int a[9009], ap1[sum_max], ap2[sum_max * 2];

int main()
{
  ifstream cin("medie.in");
  ofstream cout("medie.out");

  int n;
  cin >> n;
  for(int i = 0; i < n; ++i)
     cin >> a[i];
  for(auto &x : a)
    ap1[x] ++;
  for(int i = 0; i < n; ++i) {
    for(int j = i + 1 ; j < n; ++j)
       ap2[a[i] + a[j]]++;
  }

  long long ans(0);
  for(int i = 0; i < n; ++i) {
    ans += ap2[a[i] << 1] - ap1[a[i]] + 1;
    // din numarul de perechi totale scad pe cele cu i = j si pe cele cu i = k/*/
    // daca am i = j pot alege orice k din [i+1, n] deci am nr de ap al lui a[i] din [i+1, n]
    // daca am i = k, pot alege orice j  din [1, i) deci am nr de ap al lui a[i] din [1, i)
  }

  cout << ans ;
  return 0;
}