Cod sursa(job #979326)

Utilizator crisbodnarCristian Bodnar crisbodnar Data 1 august 2013 11:42:19
Problema Oite Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 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 = 65599;

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; fin.get();
    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++)
            if(L-v[i]-v[j] > 0) sol += Find(L-v[i]-v[j]);

        for(int j=1; j<i; j++)
            Insert(v[i]+v[j]);
    }
    fout<<sol;
    return 0;
}