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;
  30. cin>>n>>k;
  31. int arr[n],frneg[1000001]={},frpos[1000001]={},count=0;
  32. for(int i=0;i<n;i++)
  33. cin>>arr[i];
  34. for(int i=0;i<n;i++)
  35. {
  36. if(arr[i]<0)
  37. frneg[-arr[i]]++;
  38. else
  39. frpos[arr[i]]++;
  40. }
  41. for(int i=0;i<n;i++)
  42. {
  43. if(arr[i]<0)
  44. {
  45. if(frneg[-arr[i]])
  46. {
  47. if(frpos[k-arr[i]])
  48. count+=frpos[k-arr[i]];
  49. else
  50. count+=frneg[abs(k-arr[i])];
  51. frneg[-arr[i]]--;
  52. }
  53. }
  54. else
  55. {
  56. if(frpos[arr[i]])
  57. {
  58. if(frpos[k-arr[i]])
  59. count+=frpos[k-arr[i]];
  60. else
  61. count+=frneg[abs(k-arr[i])];
  62. frpos[arr[i]]--;
  63. }
  64. }
  65. }
  66. cout<<count<<el;
  67.  
  68. }
  69.  
  70. return 0;
  71. }
Success #stdin #stdout 0.01s 11212KB
stdin
Standard input is empty
stdout
0