Pagini recente » Cod sursa (job #2433656) | Cod sursa (job #1619255) | Cod sursa (job #562269) | Cod sursa (job #726640) | Cod sursa (job #2396075)
#include <stdio.h>
#include <vector>
#define key val%10000
using namespace std;
FILE *in,*out;
int c,l;
int a[1026];
vector <pair<int,int>> v[100000];
void read(){
fscanf(in,"%d %d",&c,&l);
for(int i=1;i<=c;i++)
fscanf(in,"%d",&a[i]);
}
int find(int val){
for(auto y:v[key]){
if(y.first==val)
return y.second;
}
}
void add(int val){
for(auto y:v[key]){
if(y.first==val){
y.second++;
return;
}
}
v[key].push_back({val,1});
}
void solve(){
int sol=0;
for(int i=2;i<c;i++){
for(int j=i+1;j<=c;j++)
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;
}