forked from hzhou/usaco
-
Notifications
You must be signed in to change notification settings - Fork 0
/
usaco.def
71 lines (59 loc) · 1.6 KB
/
usaco.def
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
subcode: _autoload
$include <cstdio>
$include <algorithm>
# $plugin dump_array, scan_int
$register_prefix(ll) long long
subcode: training_frame
$(block:frame_init)
$: /*
$: ID: usaco107
$: LANG: C++
$:: PROG: $(_pagename)
$: TASK: test
$: */
$call @global
$function main
$call main
subcode: open_In
FILE* In = fopen("$(subst:_pagename:_(bronze|silver|gold|platinum):).in", "r");
$if !In
$call die, "Can't open In\n"
BLOCK
fclose(In)
subcode: open_Out
FILE* Out = fopen("$(subst:_pagename:_(bronze|silver|gold|platinum):).out", "w");
$(set:print_to=Out)
BLOCK
fclose(Out)
#-----------------------------------------------
subcode: dump_array(L, N)
$print "$(L)[%d]: -", $(N)
$for _i=0:$(N)
$print "%d -", $(L)[_i]
$print
subcode: scan_int(@plist)
$(unset:fmt, vars)
$(for:p in $(plist))
$(if:_decl)
$my int $(p)
$(set-1:fmt.= %d)
$(set-1:vars.=,&$(p))
fscanf(In, "$(fmt)" $(vars));
subcode: scan_int_array(n, @plist)
$for i=0:$(n)
$call scan_int, $(join:*[i]:,:$(plist))
subcode: scan_Int(@plist)
$(set:_decl=1)
$call scan_int, $(plist)
subcode: scan_Int_array(n, @plist)
$(for:p in $(plist))
$my int $(p)[$(n)]
$call scan_int_array, $(n), $(plist)
#----------------------------------------
macros:
T_vn: std::vector<int>
T_vn2: std::vector<std::pair<int,int> >
T_map: std::map<int,int>
T_set: std::set<int>
T_umap: std::unordered_map<int,int>
T_uset: std::unordered_set<int>