Cod sursa(job #60154)

Utilizator cos_minBondane Cosmin cos_min Data 12 mai 2007 19:19:37
Problema Medie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <stdio.h>
#include <ext/hash_map>
using namespace std;
using namespace __gnu_cxx;

#define in "medie.in"
#define out "medie.out"
#define dim 9001

//hash_map<int,int> H1;
//hash_map<int,int> H2;
int H2[7001];
int H1[7001];
int A[dim], N;

int main()
{
    //freopen(in,"r",stdin);
    FILE *fin = fopen(in,"r");
    freopen(out,"w",stdout);
    
    fscanf(fin,"%d\n", &N);
    
    char linie[10];
    int aux=0,j;
    
    for ( int i = 1; i <= N; i++ )
    {
       // scanf("%d", &A[i]);
        fgets(linie,9,fin);
        aux = j = 0;
        
        while ( linie[j] >= '1' && linie[j] <= '9' ) aux *= 10, aux += (int)linie[j]-48, j++;
        A[i] = j;
        H2[A[i]]++;
    }
    
    int med;
    int total = 0;
        
    for ( int i = 1; i < N; i++ )
    {
        for ( int j = i+1; j <= N; j++ )
        {
            med = A[i] + A[j];
            if ( med&1 ) continue;
            H1[med/2]++; 
        }
    } 
    
    for ( int k = 1; k <= N; k++ )
       if( H1[A[k]] > 0 ) total += H1[A[k]] - H2[A[k]] + 1;
    
    printf("%d", total);
}