fork(1) download
  1. #include <iostream>
  2. #include <assert.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <stdio.h>
  6. #include <vector>
  7. #include <set>
  8. #include <map>
  9. #include <queue>
  10. #include <stack>
  11. #include <string>
  12. #include <string.h>
  13. #include <cmath>
  14. #include <memory.h>
  15. #include <algorithm>
  16. using namespace std;
  17. typedef long long ll;
  18. int bitCount(int i)
  19. {
  20. i = i - ((i >> 1) & 0x55555555);
  21. i = (i & 0x33333333) + ((i >> 2) & 0x33333333);
  22. return (((i + (i >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
  23. }
  24. int main()
  25. {
  26. clock_t T = clock();
  27. ll s = 0;
  28. for (int i = 0; i<250000000; ++i)
  29. s += __builtin_popcount(i);
  30. printf("%lld\n", s);
  31. printf("%.3lf\n", double(clock() - T) / CLOCKS_PER_SEC);
  32.  
  33. T = clock();
  34. s = 0;
  35. for (int i = 0; i<250000000; ++i)
  36. s += bitCount(i);
  37. printf("%lld\n", s);
  38. printf("%.3lf\n", double(clock() - T) / CLOCKS_PER_SEC);
  39. return 0;
  40. }
Success #stdin #stdout 2.89s 3096KB
stdin
Standard input is empty
stdout
3461732032
1.816
3461732032
1.078