fork download
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. typedef long long ll;
  5. #define bay_bay return 0;
  6. void yasser()
  7. {
  8. std::ios_base::sync_with_stdio(0);
  9. cin.tie(NULL);
  10. cout.tie(NULL);
  11. #ifndef ONLINE_JUDGE
  12. freopen("input.txt", "r", stdin);
  13. //freopen("output.txt", "w", stdout);
  14. #else
  15. #endif
  16. }
  17. #define yasser yasser();
  18. #define fori(n) for(int i=0;i<n;++i)
  19. #define forsz(s )for(int i=0;i<s.size();++i)
  20. #define all(v) ((v).begin()), ((v).end())
  21. #define read(FILE) freopen(FILE,"r",stdin)
  22. #define write(FILE) freopen(FILE,"w",stdout)
  23. #define sz(v) v.size()
  24. #define endl "\n"
  25. ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); }
  26. ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; }
  27. int arr[100007];
  28. int main()
  29. {
  30. yasser
  31. int n, ne = 0; cin >> n;
  32. for (int i = 0; i < n; i++) {
  33. cin >> arr[i]; if (arr[i] < 0)ne++;
  34. }
  35. sort(arr, arr + n);
  36. if (ne % 2 == 0)
  37. {
  38. ll sum = 0;
  39. fori(n)
  40. {
  41. if (arr[i] < 0)
  42. {
  43. sum += abs(arr[i]) - 1;
  44. }
  45. else if (arr[i] == 0)sum++;
  46. else
  47. {
  48. sum += arr[i] - 1;
  49. }
  50. }
  51. cout << sum << endl;
  52. }
  53. else
  54. {
  55. int f = 0;
  56. ll sum = 0;
  57. f = binary_search(arr, arr + n, 0);
  58. if (f)
  59. {
  60. for (int i = 0; i < n; i++)
  61. {
  62. if (arr[i] < 0)
  63. {
  64. sum += abs(arr[i]) - 1;
  65. }
  66. else if (arr[i] == 0)sum++;
  67. else
  68. {
  69. sum += arr[i] - 1;
  70. }
  71. }
  72. cout << sum << endl;
  73. return 0;
  74. }
  75.  
  76. sum += abs(arr[0]) + 1;
  77. for (int i = 1; i < n; i++)
  78. {
  79. if (arr[i] < 0)
  80. {
  81. sum += abs(arr[i]) - 1;
  82. }
  83. else if (arr[i] == 0)sum++;
  84. else
  85. {
  86. sum += arr[i] - 1;
  87. }
  88. }
  89. cout << sum << endl;
  90. }
  91. }
Success #stdin #stdout 0s 4452KB
stdin
4
3 6 28 9
stdout
42