Cod sursa(job #979319)

Utilizator crisbodnarCristian Bodnar crisbodnar Data 1 august 2013 11:30:31
Problema Oite Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("oite.in");
ofstream fout("oite.out");

const int N = 1026;
const int mod = 666013;

int C, L, sol, v[N];
vector <int> a[mod+1];

int Find(const int val)
{
    const int x = val % mod; int nr = 0;
    for(unsigned i=0; i<a[x].size(); i++)
        if(a[x][i] == val) nr++;
    return nr;
}

void Insert(const int val)
{
    const int x = val % mod;
    a[x].push_back(val);
}

int main()
{
    fin>>C>>L;
    for(int i=1; i<=C; i++)
        fin>>v[i];

    for(int i=2; i<C; i++)
    {
        for(int j=i+1; j<=C; j++)
        {
            int val = L-v[i]-v[j];
            if(val > 0) sol += Find(val);
        }
        for(int j=1; j<i; j++)
            Insert(v[i]+v[j]);
    }
    fout<<sol;
    return 0;
}