fork download
  1. #include <stdint.h>
  2. #define N 1<<27
  3.  
  4. #define SWAP(x,y) if(temp[x]>temp[y]){t=temp[x];temp[x]=temp[y];temp[y] = t;}
  5.  
  6. uint64_t s[2] = {0xb78895b278bfd25bULL, 0x5b1384c2629587a9ULL};
  7.  
  8. inline uint64_t xrand(void) {
  9. uint64_t s1 = s[0];
  10. const uint64_t s0 = s[1];
  11. s[0] = s0;
  12. s1 ^= s1 << 23;
  13. return (s[1] = (s1 ^ s0 ^ (s1 >> 17) ^ (s0 >> 26))) + s0;
  14. }
  15.  
  16. int main(void){
  17. uint32_t i;
  18. uint64_t temp[9] = {0}, t, r;
  19.  
  20. for(i = 0; i < N; i ++){
  21. temp[0] = xrand();
  22. temp[1] = xrand();
  23. temp[2] = xrand();
  24. temp[3] = xrand();
  25. temp[4] = xrand();
  26. temp[5] = xrand();
  27. temp[6] = xrand();
  28. temp[7] = xrand();
  29. temp[8] = xrand();
  30.  
  31. SWAP(0, 1);
  32. SWAP(3, 4);
  33. SWAP(6, 7);
  34. SWAP(1, 2);
  35. SWAP(4, 5);
  36. SWAP(7, 8);
  37. SWAP(0, 1);
  38. SWAP(3, 4);
  39. SWAP(6, 7);
  40. SWAP(0, 3);
  41. SWAP(3, 6);
  42. SWAP(0, 3);
  43. SWAP(1, 4);
  44. SWAP(4, 7);
  45. SWAP(1, 4);
  46. SWAP(2, 5);
  47. SWAP(5, 8);
  48. SWAP(2, 5);
  49. SWAP(1, 3);
  50. SWAP(5, 7);
  51. SWAP(2, 6);
  52. SWAP(4, 6);
  53. SWAP(2, 4);
  54. SWAP(2, 3);
  55. SWAP(5, 6);
  56.  
  57. r ^= temp[6];
  58. }
  59.  
  60. return r;
  61. }
  62.  
Time limit exceeded #stdin #stdout 5s 2004KB
stdin
Standard input is empty
stdout
Standard output is empty