fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define dd double
  5. #define ld long double
  6. #define pi 3.14159265359
  7. #define ull unsigned long long
  8. #define yes cout<<"YES\n"
  9. #define no cout<<"NO\n"
  10. #define el "\n"
  11. #define Arwa ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  12. #define fix(x) cout<<fixed<<setprecision(x)
  13. ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
  14. ll lcm(int a,int b) {return a/gcd(a,b)*b;}
  15. bool prime(ll n)
  16. {
  17. if(n==2) return true;
  18. if(n%2==0||n==1) return false;
  19. else { for(ll i=3; i*i<=n; i+=2) {if(n%i==0) return false;}}return true;
  20. }
  21. //here we go again
  22. int main()
  23. {
  24. Arwa
  25. int t=1;
  26. //cin>>t;
  27. while(t--)
  28. {
  29. int n,k,neg[1000005]={},pos[1000005]={};
  30. ll c=0;
  31. cin>>n>>k;
  32. int arr[n];
  33. for(int i=0;i<n;i++)
  34. cin>>arr[i];
  35. for(int i=0;i<n;i++)
  36. {
  37. if(arr[i]<0)
  38. neg[abs(arr[i])]++;
  39. else pos[arr[i]]++;
  40. }
  41. if(k==0&&pos[0])
  42. {
  43. c+=pos[0]*(pos[0]-1)/2;
  44. pos[0]=0;
  45. }
  46. for(int i=0;i<n;i++)
  47. {
  48. if(arr[i]<0)
  49. {
  50. if(neg[abs(arr[i])])
  51. {
  52. if(k-arr[i]>=0&&k-arr[i]<=1000000)
  53. {
  54. if(pos[k-arr[i]])
  55. {
  56. c+=pos[k-arr[i]];
  57. neg[abs(arr[i])]--;
  58. }
  59. }
  60. if(k-arr[i]<0&&k-arr[i]>=-1000000)
  61. {
  62. if(neg[abs(k-arr[i])])
  63. {
  64. c+=neg[abs(k-arr[i])];
  65. neg[abs(arr[i])]--;
  66. }
  67. }
  68.  
  69. }
  70. }
  71. if(arr[i]>=0)
  72. {
  73. if(pos[arr[i]])
  74. {
  75. if(k-arr[i]>=0&&k-arr[i]<=1000000)
  76. {
  77. if(pos[k-arr[i]])
  78. {
  79. c+=pos[k-arr[i]];
  80. pos[arr[i]]--;
  81. }
  82. }
  83. if(k-arr[i]<0&&k-arr[i]>=-1000000)
  84. {
  85. if(neg[abs(k-arr[i])])
  86. {
  87. c+=neg[abs(k-arr[i])];
  88. pos[arr[i]]--;
  89. }
  90. }
  91. }
  92. }
  93. }
  94. cout<<c<<el;
  95. }
  96. return 0;
  97. }
Success #stdin #stdout 0.01s 11368KB
stdin
Standard input is empty
stdout
0