#include #include #include #include int main (void) { unsigned long long n, k; unsigned long long s = 0; scanf("%llu %llu", &n, &k); unsigned long long * števila = calloc(n+1, sizeof *števila); unsigned long long * količine = calloc(n+1, sizeof *količine); int unikatnih = 0; for (unsigned long long i = 0; i < n; i++) { unsigned long long element; scanf("%llu", &element); if (!unikatnih || števila[unikatnih-1] != element) { količine[unikatnih] = 1; števila[unikatnih++] = element; } else količine[unikatnih-1]++; } int l = 0; int d = unikatnih-1; do { if (števila[l] + števila[d] == k) { if (števila[l] == števila[d]) { s += (količine[l]-1)*(količine[l])/2; break; } s += količine[l]*količine[d]; if (l == d-1) break; l++; d--; continue; } if (l == d) break; if (števila[l]+števila[k] < k) l++; else d--; } while (true); printf("%llu\n", s); }