fork download
  1. #pragma GCC optimize ("Ofast")
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. template<class T> inline T getFirst(multiset<T> &a){
  5. return *(a.begin());
  6. }
  7. template<class T> inline T popLast(multiset<T> &a){
  8. T res;
  9. typename multiset<T>::iterator it;
  10. it = a.end();
  11. it--;
  12. res = *it;
  13. a.erase(it);
  14. return res;
  15. }
  16. template<class T> inline T getFirst(set<T> &a){
  17. return *(a.begin());
  18. }
  19. template<class T> inline T popLast(set<T> &a){
  20. T res;
  21. typename set<T>::iterator it;
  22. it = a.end();
  23. it--;
  24. res = *it;
  25. a.erase(it);
  26. return res;
  27. }
  28. template<class S, class T> inline S chmin(S &a, T b){
  29. if(a>b){
  30. a=b;
  31. }
  32. return a;
  33. }
  34. #define main dummy_main
  35. int main(){
  36. return 0;
  37. }
  38. #undef main
  39. class Solution{
  40. public:
  41. int minimumDeviation(vector<int>& nums){
  42. int i;
  43. long long res = 4611686016279904256LL;
  44. long long mx;
  45. set<long long> s;
  46. for(i=(0);i<(nums.size());i++){
  47. if(nums[i]%2){
  48. s.insert(nums[i] * 2);
  49. }
  50. else{
  51. s.insert(nums[i]);
  52. }
  53. }
  54. for(;;){
  55. if(s.size()==1){
  56. res = 0;
  57. break;
  58. }
  59. mx = popLast(s);
  60. chmin(res, mx - getFirst(s));
  61. if(mx % 2){
  62. break;
  63. }
  64. s.insert(mx/2);
  65. }
  66. return res;
  67. }
  68. }
  69. ;
  70. // cLay version 20201206-1
  71.  
  72. // --- original code ---
  73. // #define main dummy_main
  74. // {}
  75. // #undef main
  76. //
  77. // class Solution {
  78. // public:
  79. // int minimumDeviation(vector<int>& nums) {
  80. // ll res = ll_inf, mx;
  81. // set<ll> s;
  82. // rep(i,nums.size()) s.insert(if[nums[i]%2, nums[i] * 2, nums[i]]);
  83. //
  84. // for(;;){
  85. // if(s.size()==1) res = 0, break;
  86. // mx = popLast(s);
  87. // res <?= mx - getFirst(s);
  88. // if(mx % 2) break;
  89. // s.insert(mx/2);
  90. // }
  91. //
  92. // return res;
  93. // }
  94. // };
  95.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
stdout
Standard output is empty