Pagini recente » Cod sursa (job #1701995) | Cod sursa (job #949902) | Cod sursa (job #1593756) | Monitorul de evaluare | Cod sursa (job #2399703)
#include <fstream>
#include <vector>
#define DIM 1000017
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int n,L,i,j,s,v[1050],k,sol;
vector<pair<int,int> > H[DIM];
int main(){
fin>>n>>L;
for(i=1;i<=n;i++)
fin>>v[i];
for(i=1;i<n;i++){
for(j=i+1;j<=n;j++){
s=L-v[i]-v[j];
if(s<0)
continue;
for(k=0;k<H[s%DIM].size();k++)
if(H[s%DIM][k].first==s){
sol+=H[s%DIM][k].second;
break;
}
}
for(j=1;j<i;j++){
s=v[i]+v[j];
if(s>L)
continue;
for(k=0;k<H[s%DIM].size();k++)
if(H[s%DIM][k].first==s){
H[s%DIM][k].second++;
break;
}
if(k==H[s%DIM].size())
H[s%DIM].push_back(make_pair(s,1));
}
}
fout<<sol;
return 0;
}