Cod sursa(job #296358)

Utilizator ucc_5Usurelu Catalin ucc_5 Data 4 aprilie 2009 18:06:48
Problema Medie Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream.h>

ifstream f("medie.in");
ofstream g("medie.out");

int a[9001],v[7001],n;
long NrSol;

void citire ()
{ f>>n; 
  for (int i=1; i<=n; i++)
   f>>a[i];
  f.close ();
}

void search ()
{  int rep [7001]={0},i,j,aux;
   #define div2(x) (!((x)&1)) //verifica daca x e divizibil cu 2
   for (i=1; i<n; i++)
    { rep[a[i]]++;
      for (j=i+1; j<=n; j++)
       if div2(aux=a[i]+a[j])
        v[aux>>1]++;
    }
    rep[a[n]]++;
    for (i=1; i<=n; i++) 
     if (v[a[i]]) NrSol+=(v[a[i]]-rep[a[i]]+1);
}

void scrie ()
{ g<<NrSol;
  g.close ();
}

int main ()
{ citire ();
  search ();
  scrie ();
  return 0;
}