#include #include #define ALL(variable) (variable).begin(), (variable).end() #define GT(variableName, defaultValue, limit) for(int variableName = defaultValue; variableName < (int)limit; variableName++) #define GTE(variableName, defaultValue, limit) for(int variableName = defaultValue; variableName <= (int)limit; variableName++) #define LT(variableName, defaultValue, limit) for(int variableName = defaultValue; variableName > (int)limit; variableName--) #define LTE(variableName, defaultValue, limit) for(int variableName = defaultValue; variableName >= (int)limit; variableName--) #define YES cout << "Yes" << endl; #define NO cout << "No" << endl; using namespace std ; int main(){ long long N, X, answer; cin >> N >> X; answer = 0; vector a(N); GT(i, 0, N){ cin >> a[i]; } sort(ALL(a)); GT(i, 0, N){ answer += upper_bound(ALL(a), X - a[i]) - lower_bound(ALL(a), X - a[i]); } cout << answer << endl; }