Pagini recente » Cod sursa (job #538649) | Cod sursa (job #895245) | Cod sursa (job #483285) | Cod sursa (job #435289) | Cod sursa (job #2398369)
#include <fstream>
#include <climits>
#include <vector>
#include <cstring>
#define mod 95311
using namespace std;
ifstream f("oite.in");
ofstream g("oite.out");
vector <pair <long long,int> > v[mod+1];
int i,j,r,a,x[5025],n;
long long S,L,sol;
int caut(long long x){
if(r==-1)
return -1;
for(unsigned int i=0;i<v[r].size();i++)
if(v[r][i].first==x)
return i;
return -1;
}
int main()
{ f>>n>>L;
for(i=1;i<=n;i++)
f>>x[i];
for(i=2;i<=n;i++){
for(j=i+1;j<=n;j++){
S=x[i]+x[j];
long long A=L-S;
r=-1;
if(A>0)
r=A%mod;
a=caut(A);
if(a!=-1)
sol+=v[r][a].second;
}
for(j=1;j<=i-1;j++){
S=x[i]+x[j];
r=S%mod;
a=caut(S);
if(a!=-1)
v[r][a].second++;
else
v[r].push_back(make_pair(S,1));
}
}
g<<sol;
return 0;
}