Pagini recente » Cod sursa (job #1718366) | Cod sursa (job #2012658) | Cod sursa (job #1996089) | Monitorul de evaluare | Cod sursa (job #2523740)
#include <bits/stdc++.h>
#define MOD 100003
using namespace std;
ifstream fin ("oite.in");
ofstream fout ("oite.out");
int n, s, S, sol, q;
int v[1005];
vector <pair <int, int> > hes[MOD];
int main(){
fin >> n >> S;
for (int i=1; i<=n; i++){
fin >> v[i];
}
for (int t=1; t<n; t++){
for (int p=t+1; p<=n; p++){
s = S - v[t] - v[p];
if (s < 0)
continue;
for (q=0; q<hes[s%MOD].size(); q++){
if (hes[s%MOD][q].first == s){
sol += hes[s%MOD][q].second;
break;
}
}
}
for (int p=1; p<t; p++){
s = v[t] + v[p];
if (S < s)
continue;
for (q=0; q<hes[s%MOD].size(); q++){
if (hes[s%MOD][q].first == s){
hes[s%MOD][q].second++;
break;
}
}
if (q == hes[s%MOD].size()){
hes[s%MOD].push_back ({s, 1});
}
}
}
fout << sol;
return 0;
}