Pagini recente » Monitorul de evaluare | Istoria paginii utilizator/gady_paul | Profil davidbejenariu2 | Istoria paginii runda/algoritmiada2017/clasament | Cod sursa (job #2822182)
#include <fstream>
#include <unordered_map>
#include <algorithm>
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
const int nmax=1024;
int v[nmax+1];
unordered_map <int, int> um;
int main(){
int n,l;
fin>>n>>l;
for(int i=1;i<=n;i++){
fin>>v[i];
}
sort(v+1,v+n+1);
for(int i=3;i<=n-1;i++){
for(int j=i+1;j<=n;j++){
int sv=v[i]+v[j];
um[sv]++;
}
}
int sol=0;
for(int i=2;i<=n-2;i++){
for(int j=1;j<=i-1;j++){
if(l-v[i]-v[j]>=0){
sol+=um[l-v[i]-v[j]];
}
}
for(int j=i+2;j<=n;j++){
int sv=v[i+1]+v[j];
um[sv]--;
}
}
fout<<sol<<"\n";
return 0;
}