Pagini recente » Cod sursa (job #2725924) | Cod sursa (job #1064699) | Cod sursa (job #129555) | Cod sursa (job #3211301) | Cod sursa (job #2523941)
#include <bits/stdc++.h>
#define mod 997
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
unordered_map < int,int>m[mod+10];
unordered_map<int,int>::iterator it;
int v[1050],i,j,n,sum,sol,caut;
int main()
{
fin>>n>>sum;
for(i=1;i<=n;i++)
fin>>v[i];
m[(v[1]+v[2])%mod][v[1]+v[2]]++;
for(i=3;i<n;i++){
/// al treilea element cu restul
for(j=i+1;j<=n;j++){
caut=sum-v[i]-v[j];
if(caut<0)
continue;
else {
it=m[caut%mod].find(caut);
if(it!=m[caut%mod].end())
sol+=it->second;
}
}
for(j=1;j<i;j++){
m[(v[i]+v[j])%mod][v[i]+v[j]]++;
}
}
fout<<sol;
}