完成版。1000個吐いたら止まる
#include<stdio.h>
#define T(u,v) ((((u)&0x8000000|(v)&0x7FFFFFFF)
>>1)^((v)&1?0x9908b0df:0))
typedef unsigned long L;unsigned long N=623,M=397,K=227,m[624],i;x(L s){m[0]=s;
for(i=1;i<N;i++)m[i]=69069*m[i-1];}n(){for(i=0;i<K;i++)m[i]=m[i+M]^T(m[i],m[i+1
]);for(;i<N;i++)m[i]=m[i-K]^T(m[i],m[i+1]);m[N]=m[M-1]^T(m[N],m[0]);i=624;}L g(
){L y;if(!i--)ns();y=m[624-i];y^=y
>>11;y^=(y<<7)&0x9d2c5680;y^=(y<<15)&0xefc60\
000;return y^(y
>>18);}main(){L a=1000;x(4357);while(a--){printf("%lx\n",g());}}