Cod sursa(job #955274)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 31 mai 2013 11:34:00
Problema Oite Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<stdio.h>
#include<vector>

#define MOD 666013

using namespace std;

vector<int> Hash[MOD];
int n , SUM , sum , a[1007] , num;

int main()
{
    freopen("oite.in" , "r" , stdin);
    freopen("oite.out" , "w" , stdout);
    scanf("%d %d" , &n , &SUM);
    for(int i = 1 ; i <= n ; ++ i)
        scanf("%d" , &a[i]);
    for(int i = 1 ; i <= n ; ++ i)
    {
        for(int j = i + 1 ; j <= n ; ++ j)
        {
            sum = a[i] + a[j];
            if(sum >= SUM)
                continue ;
            for(int k = 0 ; k < Hash[(SUM - sum) % MOD].size() ; ++ k)
                if(Hash[(SUM - sum) % MOD][k] == SUM - sum)
                    ++ num;
        }
        for(int j = 1 ; j < i ; ++ j)
        {
            sum = a[i] + a[j];
            Hash[sum % MOD].push_back(sum);
        }
    }
    printf("%d" , num);
    return 0;
}