typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
//vc ++ 6.0 不支持long long
//linux gcc 不支持__int64
#ifdef _MSC_VER
typedef __int64 int64;
typedef unsigned __int64 uint64;
typedef int64 ltype;
#else
typedef long long int64;
typedef unsigned long long uint64;
typedef uint64 ltype;
#endif
//数组类型
# define MOVE 3
# if MOVE == 3
typedef uchar utype;
# elif MOVE == 4
typedef ushort utype;
# elif MOVE == 5
typedef uint utype;
# elif MOVE == 6
typedef uint64 utype;
# endif
//设置宏, 确保数组a与BITARRAY_TYPE 设置一致
# define MASK_N(n) (1 << ((n) & MASK))
# define SET_BIT(a, n) a[(n) >> MOVE] |= MASK_N(n) //设数组a的第n个bit位1
# define CLR_BIT(a, n) a[(n) >> MOVE] &