Cod sursa(job #1180098)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 29 aprilie 2014 22:25:29
Problema Oite Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <vector>

#define modulo 666013
using namespace std;
ifstream f("oite.in");
ofstream g("oite.out");
vector<int> hasht[modulo];
int c, l, i, o[1025], j, posib;

int hasht_find(int s)
{
    int list = s%modulo;
    int ap=0;
    int sz=hasht[list].size();
    for (int it=0; it<sz; it++)
        if (hasht[list][it] == s)
            ap++;
    return ap;
}

int main()
{
    f>>c>>l;
    for (i=1; i<=c; i++)
        f>>o[i];
    for (i=1; i<=c; i++){
        for (j=i+1; j<=c; j++)
            if (l-o[i]-o[j]>0)
                posib+=hasht_find(l-o[i]-o[j]);
        for (j=1; j<=i-1; j++)
            hasht[(o[i]+o[j])%modulo].push_back(o[i]+o[j]);
    }
    g<<posib;
    return 0;
}