Pagini recente » Cod sursa (job #1160883) | Cod sursa (job #1233668) | Cod sursa (job #1108151) | Cod sursa (job #1937039) | Cod sursa (job #2396157)
#include <stdio.h>
#include <vector>
using namespace std;
FILE *in,*out;
const int ma=1e5;
int c,l;
int a[1026];
vector <pair<int,int>> v[ma];
void read(){
fscanf(in,"%d %d",&c,&l);
for(int i=1;i<=c;i++)
fscanf(in,"%d",&a[i]);
}
void add(int x){
for(auto &y:v[x%ma]){
if(y.first==x){
y.second++;
return;
}
}
v[x%ma].push_back({x,1});
}
int find(int x){
for(auto y:v[x%ma]){
if(y.first==x)
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;
}