Pagini recente » Cod sursa (job #3325796) | Cod sursa (job #1386488) | Cod sursa (job #2437935) | Cod sursa (job #1902177) | Cod sursa (job #1147108)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
#define MOD 666013
#define Nmax 1030
vector <int> HASH[MOD];
int v[Nmax],n, L, sol;
int key(int x) {
x=x%MOD;
return x;
}
typedef vector <int> :: iterator IT;
int search(int x) {
int ap=0, k=key(x);
for (IT i=HASH[k].begin();i!=HASH[k].end();++i)
if (*i==x)
++ap;
return ap;
}
int main() {
fin>>n>>L;
for (int i = 0; i < n; ++i)
fin >> v[i];
for (int i = 0; i < n - 1; ++i) {
for (int j = i + 1; j < n; ++j)
if (L - v[j] - v[i] >= 0)
sol += search (L - v[j] - v[i]);
for (int j = 0; j < i; ++j)
HASH[key(v[j] + v[i])].push_back (v[j] + v[i]);
};
fout << sol;
return 0;
}