#include #include #include int compare(const void *a, const void *b) { return *((const uint32_t*)a) > *((const uint32_t*)b); } const int N = 1000001; uint32_t x = 0, y = 1, z = 2, w = 3; uint32_t t = 0; uint32_t generate() { t = (x^(x<<11)); x = y; y = z; z = w; w = (w ^ (w >> 19)) ^ (t ^ (t >> 8)); return w; } int32_t seed; uint32_t a[1000001]; int main(void) { scanf("%d", &x); for (int i = 0; i < N; i++) a[i] = generate(); qsort(a, N, sizeof(uint32_t), compare); printf("%lld\n", (long long)a[N/2]); return 0; }