Pagini recente » Cod sursa (job #2649737) | Cod sursa (job #2842203) | Cod sursa (job #360460) | Cod sursa (job #2370341) | Cod sursa (job #2629183)
#include <fstream>
#include <algorithm>
#include <unordered_map>
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
const int NMAX = 1024;
unordered_map<long long, int> lhs, rhs;
long long v[NMAX + 1];
int main() {
long long L;
int n;
fin>>n>>L;
for( int i = 1; i <= n; i ++ ) {
fin>>v[i];
}
for( int i = 1; i <= n - 3; i ++ )
for( int j = i + 1; j <= n - 2; j ++ )
lhs[v[i] + v[j]] ++;
long long ans = 0;
for( int i = n - 1; i >= 3; i -- ) {
for( int j = i + 1; j <= n; j ++ ) {
rhs[v[i] + v[j]] ++;
ans += lhs[L - v[i] - v[j]];
}
for( int j = i - 2; j >= 1; j -- )
lhs[v[j] + v[i - 1]] --;
}
fout<<ans;
}