Cod sursa(job #1768927)
| Utilizator | Data | 1 octombrie 2016 18:25:05 | |
|---|---|---|---|
| Problema | Oite | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <algorithm>
#include <fstream>
#include <map>
using namespace std;
ifstream f ("oite.in");
ofstream g ("oite.out");
int v[1500];
int n , l;
long long ans;
map <int , int> mp;
int main() {
f >> n >> l;
for (int i = 1; i <= n; ++i) {
f >> v[i];
}
sort (v + 1 , v + n + 1);
for (int i = 1; i < n; ++i) {
for (int j = i + 1; j <= n; ++j) {
if (v[i] + v[j] <= l)
ans += (long long)mp[l - v[i] - v[j]];
}
for (int j = 1; j < i; ++j) {
++mp[v[i] + v[j]];
}
}
g << (long long)ans;
return 0;
}
