#ifndef _STDLIB_H_ #define _STDLIB_H_ #include #define RAND_MAX 65535 #ifndef NULL #define NULL ((void*)0) #endif #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b)) typedef struct { int quot; int rem; } div_t; typedef struct { long quot; long rem; } ldiv_t; typedef struct { long long quot; long long rem; } lldiv_t; static inline div_t div(int num, int den) { return (div_t) { num / den, num % den }; } static inline ldiv_t ldiv(long num, long den) { return (ldiv_t) { num / den, num % den }; } static inline lldiv_t lldiv(long long num, long long den) { return (lldiv_t) { num / den, num % den }; } extern void* _FUNC(malloc)(size_t size); extern void* _FUNC(calloc)(size_t num, size_t size); extern void* _FUNC(realloc)(void* ptr, size_t newsize); extern void _FUNC(free)(void* ptr); extern long int _FUNC(strtol)(const char* str, char** endptr, int base); extern void _FUNC(exit)(int status); extern void _FUNC(srand)(unsigned s); extern int _FUNC(rand)(void); extern void _FUNC(__assert_fail)(const char* expr, const char* file, int line, const char* func); extern void _FUNC(qsort)(void* base0, size_t n, size_t size, int (*compar)(const void*, const void*)); extern double _FUNC(strtod)(const char* s, char** sret); extern double _FUNC(atof)(const char* ascii); extern int _FUNC(atoi)(const char* s); extern long _FUNC(atol)(const char*); extern long long _FUNC(atoll)(const char*); extern void _FUNC(itoa)(int n, char* s); extern int _FUNC(abs)(int); extern long _FUNC(labs)(long); extern long long _FUNC(llabs)(long long); #endif