{ // Place your ACM 工作区 snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. // Placeholders with the same ids are connected. // Example: // "Print to console": { // "scope": "javascript,typescript", // "prefix": "log", // "body": [ // "console.log('$1');", // "$2" // ], // "description": "Log output to console" // } "ICPC Starndard Header": { "scope": "c,cpp", "prefix": "acm", "body": [ "#define _CRT_SECURE_NO_WARNINGS", "#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING", "#include ", "using namespace std;", "#define CRP(t, x) const t &x", "#define OPX(op, t, x) operator op(CRP(t, x))", "#define OPL(t, x) bool OPX(<, t, x) const", "#define FIL(x, v) memset(x, v, sizeof(x))", "#define CLR(x) FIL(x, 0)", "#define NE1(x) FIL(x, -1)", "#define INF(x) FIL(x, 0x3f)", "#ifndef _DEBUG", "#define _DEBUG 0", "#endif // !_DEBUG", "#define IFD if (_DEBUG)", "typedef int64_t ll, i64;", "typedef uint64_t ull, u64;", "template ", "using comtype = typename common_type::type;", "template ", "using enable_if_arithmetic = typename enable_if::value>::type;", "template ", "using enable_if_integral = typename enable_if::value>::type;", "inline char getchar(int)", "{", " static char buf[64 << 20], *S = buf, *T = buf;", " if (S == T) T = fread(S = buf, 1, 64 << 20, stdin) + buf;", " return S == T ? EOF : *S++;", "}", "template >", "inline bool read(T &x)", "{", " int ch = x = 0, f = 1;", " while (!isdigit(ch = getchar()))", " if (ch == EOF)", " return false;", " else if (ch == '-')", " f = 0;", " for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';", " return x = f ? x : -x, true;", "}", "template >", "inline bool read(T &x, Args &... args) { return read(x) && read(args...); }", "template >", "inline TResult mmin(CRP(T1, v1), CRP(T2, v2)) { return min(v1, v2); }", "template >", "inline TResult mmin(CRP(T, v), const Args &... args) { return min(v, mmin(args...)); }", "template >", "inline TResult mmax(CRP(T1, v1), CRP(T2, v2)) { return max(v1, v2); }", "template >", "inline TResult mmax(CRP(T, v), const Args &... args) { return max(v, mmax(args...)); }", "inline ll gcd(ll a, ll b)", "{", " for (; b; swap(a, b)) a %= b;", " return a;", "}", "inline ll fpow(ll a, ll b, ll m)", "{", " ll r = 1;", " for (; b; b >>= 1, a = a * a % m)", " if (b & 1) r = r * a % m;", " return r;", "}", "constexpr double eps = 1e-8;", "inline int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; }", "int main()", "{", " $0", " return 0;", "}", ] } }