Pagini recente » Cod sursa (job #1514793) | Cod sursa (job #1704917) | Cod sursa (job #2740001) | Cod sursa (job #1347102) | Cod sursa (job #1711357)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("oite.in");
ofstream cout("oite.out");
const int MOD = 666013, MAX = 1025;
int v[MAX], n, l;
vector <pair<int, long long> > has[MOD];
long long ans;
int main()
{
cin>>n>>l;
for(int i=1; i<=n; i++)
cin>>v[i];
for(int i=1; i<n; i++){
for(int j=i+1; j<=n; j++){
int s = l - v[i] - v[j];
if(s>=0){
int lin = s % MOD;
for(unsigned it=0; it<has[lin].size(); it++)
if(has[lin][it].first==s)
ans = ans + has[lin][it].second;
}
}
for(int j=1; j<i; j++){
int s = v[i] + v[j];
int lin = s % MOD;
int gasit = 0;
for(unsigned it=0; it<has[lin].size(); it++)
if(has[lin][it].first == s){
gasit = 1;
has[lin][it].second++;
}
if(gasit==0)
has[lin].push_back({s, 1});
}
}
cout<<ans;
return 0;
}