Pagini recente » Cod sursa (job #2368787) | Cod sursa (job #34124) | Cod sursa (job #1213473) | Cod sursa (job #1418352) | Cod sursa (job #2568363)
//#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>
#include <random>
#include <iterator>
#include <algorithm>
using namespace std;
ifstream cin("oite.in");
ofstream cout("oite.out");
unordered_map <int,int> sum;
int v[1050],n,l,suma,var,var1=0;
vector<pair<int,int> > gaina[1000010];
int gas(int a){
int aa=a,sum=0;
a%=1000007;
for(auto u:gaina[a]){
if(u.first==aa)
sum+=u.second;
}
return sum;
}
//feo e trist
// feo e trist
// feo e trist
// feo e trist
// feo e trist
// feo e trist
void ins(int a){
int aa=a;
a%=1000007;
for(int i=0;i<gaina[a].size();i++){
if(gaina[a][i].first==aa){
gaina[a][i].second++;
return;
}
}
gaina[a].push_back(make_pair(aa,1));
}
int main()
{
//ofstream cout("oite.out");
cin>>n>>l;
for(int i=1;i<=n;i++){
cin>>v[i];
}
sort(v+1,v+n+1);
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(v[i]+v[j]<=l){
var+=gas(l-v[i]-v[j]);
}
//else
// break;
}
for(int j=1;j<i;j++){
if(v[i]+v[j]<=l){
ins(v[i]+v[j]);
}
//else
// break;
}
}
cout<<var;
return 0;
}