Pagini recente » Cod sursa (job #2660175) | Cod sursa (job #1516915) | Cod sursa (job #625312) | Cod sursa (job #980671) | Cod sursa (job #2396194)
#include <stdio.h>
#include <vector>
using namespace std;
FILE *in,*out;
const int mod=1e5;
int c,l;
int a[1026];
vector <pair<int,int>> v[mod];
void read(){
fscanf(in,"%d %d",&c,&l);
for(int i=1;i<=c;i++)
fscanf(in,"%d",&a[i]);
}
void add(int val){
for(auto &y:v[val%mod]){
if(y.first==val){
y.second++;
return;
}
}
v[val%mod].push_back({val,1});
}
int find(int val){
for(auto y:v[val%mod]){
if(y.first==val)
return y.second;
}
return 0;
}
void solve(){
int sol=0;
for(int i=2;i<c;i++){
for(int j=i+1;j<=c;j++)
if(a[i]+a[j]<=l)
sol+=find(l-a[i]-a[j]);
for(int j=i-1;j>=1;j--)
add(a[i]+a[j]);
}
fprintf(out,"%d",sol);
}
int main(){
in=fopen("oite.in","r");
out=fopen("oite.out","w");
read();
solve();
return 0;
}