Pagini recente » Cod sursa (job #2667010) | Cod sursa (job #1477348) | Cod sursa (job #1757155) | Cod sursa (job #1114902) | Cod sursa (job #1344088)
#include <fstream>
#include <algorithm>
#include <vector>
#define nmax 1005
#define mod 66613
using namespace std;
ifstream f("oite.in");
ofstream g("oite.out");
long long sol;
int n,s,s1,v[nmax],x,y;
vector < pair < int , int > > a[mod+5];
vector < pair < int , int > > ::iterator it;
int main()
{
int i,j;
f>>n>>s;
for (i=1;i<=n;i++)
f>>v[i];
sort(v+1,v+n+1);
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++)
if (v[i]+v[j]<=s)
a[(v[i]+v[j])%mod].push_back(make_pair(i,j));
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++) {
s1=s-v[i]-v[j];
if (s1>=0) {
it=a[s1%mod].begin();
for (;it!=a[s1%mod].end();it++) {
x=it->first;
y=it->second;
if (x!=i&&x!=j&&y!=i&&y!=j&&v[i]+v[j]+v[x]+v[y]==s)
sol++;
}
}
}
g<<sol/6;
return 0;
}