gettc 1.8.1 → 1.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/core/lib/version.rb +1 -1
- data/dist/config.yml +1 -1
- data/dist/template/bin/runner.rb +184 -178
- data/dist/template/solve/Makefile.common +40 -0
- data/dist/template/solve/cpp/Makefile +6 -29
- data/dist/template/solve/cpp/{{name}Runner.cpp → {name}Solver.cpp} +0 -0
- data/dist/template/solve/go/Makefile +7 -29
- data/dist/template/solve/go/{{name}Runner.go → {name}Solver.go} +0 -0
- data/dist/template/solve/haskell/Makefile +6 -28
- data/dist/template/solve/haskell/{{name}Runner.hs → {name}Solver.hs} +0 -0
- data/dist/template/solve/java/build.xml +3 -3
- data/dist/template/solve/java/{{name}Runner.java → {name}Solver.java} +2 -2
- data/dist/template/solve/python/Makefile +5 -24
- data/dist/template/solve/python/{{name}Runner.py → {name}Solver.py} +0 -0
- data/dist/usage +1 -0
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 248e85dd98ec679999209b8148373b71ca96b70c
|
4
|
+
data.tar.gz: e9cd8061bf69f561a8f2945f8fa47de2a48b53b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97383359ec7189209c3d88be0de62d2ba73106e6abdb75eb164d3d17a4b68e020eccdb2d7e9c800fe57bc5f51f4e533482cf550da59dfaa219c448da3a97fe4d
|
7
|
+
data.tar.gz: 134603c5baca851d3248b55a16014625ce74c52569187adb383c589d5f762e5d7484aaf091c3a2156355a8136944f3b1d56aea950a53af6d292905cc93dc69fe
|
data/core/lib/version.rb
CHANGED
data/dist/config.yml
CHANGED
data/dist/template/bin/runner.rb
CHANGED
@@ -1,178 +1,184 @@
|
|
1
|
-
require "fileutils"
|
2
|
-
require "logger"
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
FileUtils.
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
@
|
26
|
-
@
|
27
|
-
@
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
@log
|
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
|
-
print
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
print_file_content "
|
71
|
-
print_file_content "
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
@
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
@
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
inputs
|
115
|
-
|
116
|
-
@total = inputs.size
|
117
|
-
@elapsed =
|
118
|
-
@failures = Array.new
|
119
|
-
@errors = Array.new
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
puts "
|
136
|
-
|
137
|
-
print_array "
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
1
|
+
require "fileutils"
|
2
|
+
require "logger"
|
3
|
+
require "pathname"
|
4
|
+
|
5
|
+
class SysUtil
|
6
|
+
def self.with_dir dir
|
7
|
+
saved = FileUtils.pwd
|
8
|
+
FileUtils.chdir dir
|
9
|
+
yield
|
10
|
+
FileUtils.chdir saved
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class StopWatch
|
15
|
+
def self.measure
|
16
|
+
before = Time.now
|
17
|
+
yield
|
18
|
+
after = Time.now
|
19
|
+
return ((after - before) * 1000).round
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class GettcRunner
|
24
|
+
def initialize mode, solver, data_d, output_d
|
25
|
+
@verbose = (mode == "verbose")
|
26
|
+
@solver = solver
|
27
|
+
@data_d = data_d
|
28
|
+
@output_d = output_d
|
29
|
+
|
30
|
+
@dir = File.dirname __FILE__
|
31
|
+
|
32
|
+
FileUtils.mkdir_p @output_d
|
33
|
+
|
34
|
+
@log = Logger.new STDOUT
|
35
|
+
@log.formatter = proc do |severity, datetime, progname, message|
|
36
|
+
message
|
37
|
+
end
|
38
|
+
@log.level = Logger::INFO
|
39
|
+
if @verbose
|
40
|
+
@log.level = Logger::DEBUG
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def compile_checker
|
45
|
+
puts "[gettc] Compile checker"
|
46
|
+
@checker = File.join @dir, "../build/check"
|
47
|
+
unless File.exists? @checker
|
48
|
+
checker_src = File.join @dir, "../util/check"
|
49
|
+
SysUtil::with_dir checker_src do
|
50
|
+
system "make"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def populate_filenames n
|
56
|
+
input = File.join @data_d, "#{n}.in"
|
57
|
+
expected = File.join @data_d, "#{n}.out"
|
58
|
+
received = File.join @output_d, "#{n}.out"
|
59
|
+
return input, expected, received
|
60
|
+
end
|
61
|
+
|
62
|
+
def print_file_content label, filename
|
63
|
+
print " #{label}: <"
|
64
|
+
print File.read(filename)
|
65
|
+
puts ">"
|
66
|
+
end
|
67
|
+
|
68
|
+
def print_case n
|
69
|
+
input, expected, received = populate_filenames n
|
70
|
+
print_file_content "Input", input
|
71
|
+
print_file_content "Expected", expected
|
72
|
+
print_file_content "Received", received
|
73
|
+
end
|
74
|
+
|
75
|
+
def run_case n
|
76
|
+
input, expected, received = populate_filenames n
|
77
|
+
|
78
|
+
@log.debug "Case #{n} ... "
|
79
|
+
ret = true
|
80
|
+
|
81
|
+
elapsed = StopWatch::measure do
|
82
|
+
ret = system "#{@solver} #{input} #{received}"
|
83
|
+
end
|
84
|
+
@elapsed[n] = elapsed
|
85
|
+
@log.debug "#{elapsed}ms "
|
86
|
+
|
87
|
+
if ret != true
|
88
|
+
@errors << n
|
89
|
+
@log.debug "Error (cannot execute solver)\n"
|
90
|
+
else
|
91
|
+
system "#{@checker} #{expected} #{received}"
|
92
|
+
ret = $?.exitstatus
|
93
|
+
case ret
|
94
|
+
when 0
|
95
|
+
@log.debug "Passed\n"
|
96
|
+
when 1
|
97
|
+
@log.debug "Failed\n"
|
98
|
+
@failures << n
|
99
|
+
print_case n if @verbose
|
100
|
+
when 2
|
101
|
+
@log.debug "Error (checker reported error)\n"
|
102
|
+
@errors << n
|
103
|
+
else
|
104
|
+
@log.debug "Error (error executing checker)\n"
|
105
|
+
@errors << n
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def run_all_cases
|
111
|
+
puts "[gettc] Run test cases"
|
112
|
+
|
113
|
+
inputs = Dir.glob "#{@data_d}/*.in"
|
114
|
+
inputs.sort!
|
115
|
+
|
116
|
+
@total = inputs.size
|
117
|
+
@elapsed = Hash.new
|
118
|
+
@failures = Array.new
|
119
|
+
@errors = Array.new
|
120
|
+
|
121
|
+
inputs.each do |input|
|
122
|
+
basename = Pathname.new(input).basename.to_s
|
123
|
+
run_case basename[0..-4]
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
def print_array label, arr
|
128
|
+
if arr.size > 0
|
129
|
+
print "#{label}: "
|
130
|
+
puts arr.join(", ")
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
def summarize
|
135
|
+
puts "[gettc] Summary"
|
136
|
+
puts "#{@total} cases checked, #{@failures.size} failures, #{@errors.size} errors"
|
137
|
+
print_array "Failures", @failures
|
138
|
+
print_array "Errors", @errors
|
139
|
+
|
140
|
+
if @total > 0
|
141
|
+
sum = 0
|
142
|
+
maxv = 0
|
143
|
+
maxk = nil
|
144
|
+
@elapsed.each do |key, value|
|
145
|
+
sum += value
|
146
|
+
if value > maxv
|
147
|
+
maxv = value
|
148
|
+
maxk = key
|
149
|
+
end
|
150
|
+
end
|
151
|
+
avg = sum / @total
|
152
|
+
|
153
|
+
puts " Total time taken: #{sum} ms"
|
154
|
+
puts " Average time taken: #{avg} ms"
|
155
|
+
puts " Slowest running case: #{maxv} ms (case #{maxk})"
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def print_failures
|
160
|
+
if @failures.empty? || @verbose
|
161
|
+
return
|
162
|
+
end
|
163
|
+
n = @failures.size
|
164
|
+
if n > 5
|
165
|
+
puts "Here are a few failed case for your debugging purposes"
|
166
|
+
n = 5
|
167
|
+
end
|
168
|
+
n.times do |i|
|
169
|
+
j = @failures[i]
|
170
|
+
puts "Case #{j}:"
|
171
|
+
print_case j
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
def run
|
176
|
+
compile_checker
|
177
|
+
run_all_cases
|
178
|
+
print_failures
|
179
|
+
summarize
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
runner = GettcRunner.new ARGV[0], ARGV[1], ARGV[2], ARGV[3]
|
184
|
+
runner.run
|
@@ -0,0 +1,40 @@
|
|
1
|
+
run = \
|
2
|
+
@if [ -n "$(case)" ] ; then \
|
3
|
+
if [ ! -f "$(DATA_D)/$2/$(case).in" ] ; then \
|
4
|
+
echo "Error: Your test case $(case) does not exist" ; \
|
5
|
+
exit ; \
|
6
|
+
fi ; \
|
7
|
+
mv $(DATA_D)/$2 $(DATA_D)/$2_backup ; \
|
8
|
+
mkdir $(DATA_D)/$2 ; \
|
9
|
+
cp $(DATA_D)/$2_backup/$(case).* $(DATA_D)/$2 ; \
|
10
|
+
$(RUNNER) $1 $(SOLVER) $(DATA_D)/$2 $(OUTPUT_D)/$2 ; \
|
11
|
+
rm -rf $(DATA_D)/$2 ; \
|
12
|
+
mv $(DATA_D)/$2_backup $(DATA_D)/$2 ; \
|
13
|
+
else \
|
14
|
+
$(RUNNER) $1 $(SOLVER) $(DATA_D)/$2 $(OUTPUT_D)/$2 ; \
|
15
|
+
fi
|
16
|
+
|
17
|
+
GETTC_HOME ?= $(HOME)/.gettc
|
18
|
+
DATA_D = ../../data
|
19
|
+
RUNNER = sh ../../bin/runner.sh
|
20
|
+
|
21
|
+
default : usage
|
22
|
+
|
23
|
+
usage :
|
24
|
+
@cat $(GETTC_HOME)/usage
|
25
|
+
|
26
|
+
setup :
|
27
|
+
@if [ ! -d $(OUTPUT_D) ]; then mkdir -p $(OUTPUT_D); fi
|
28
|
+
@echo "[gettc] Compile solver"
|
29
|
+
|
30
|
+
demo : main
|
31
|
+
$(call run,verbose,demo)
|
32
|
+
|
33
|
+
sys : main
|
34
|
+
$(call run,quiet,sys)
|
35
|
+
|
36
|
+
sysv : main
|
37
|
+
$(call run,verbose,sys)
|
38
|
+
|
39
|
+
clean :
|
40
|
+
@rm -rf $(OUTPUT_D)
|
@@ -1,33 +1,10 @@
|
|
1
|
-
|
1
|
+
include ../Makefile.common
|
2
|
+
|
2
3
|
OUTPUT_D =../../build/cpp
|
3
|
-
|
4
|
+
SOLVER = $(OUTPUT_D)/<%= prob.name %>Solver
|
4
5
|
COMPILER = g++ -std=gnu++0x -I$(GETTC_HOME)/include/cpp
|
5
|
-
RUNNER = sh ../../bin/runner.sh
|
6
|
-
|
7
|
-
run = @$(RUNNER) $1 $(OUTPUT_D)/<%= prob.name %>Runner $(DATA_D)/$2 $(OUTPUT_D)/$2
|
8
|
-
|
9
|
-
default : usage
|
10
|
-
|
11
|
-
usage :
|
12
|
-
@cat $(GETTC_HOME)/usage
|
13
|
-
|
14
|
-
setup :
|
15
|
-
@if [ ! -d $(OUTPUT_D) ]; then mkdir -p $(OUTPUT_D); fi
|
16
|
-
@echo "[gettc] Compile solver"
|
17
|
-
|
18
|
-
$(OUTPUT_D)/<%= prob.name %>Runner: <%= prob.name %>Runner.cpp <%= prob.name %>.cpp
|
19
|
-
$(COMPILER) -o $(OUTPUT_D)/<%= prob.name %>Runner $<
|
20
|
-
|
21
|
-
main: setup $(OUTPUT_D)/<%= prob.name %>Runner
|
22
|
-
|
23
|
-
demo : main
|
24
|
-
$(call run,verbose,demo)
|
25
|
-
|
26
|
-
sys : main
|
27
|
-
$(call run,quiet,sys)
|
28
6
|
|
29
|
-
|
30
|
-
$(
|
7
|
+
$(SOLVER): <%= prob.name %>Solver.cpp <%= prob.name %>.cpp
|
8
|
+
$(COMPILER) -o $(SOLVER) $<
|
31
9
|
|
32
|
-
|
33
|
-
@rm -rf $(OUTPUT_D)
|
10
|
+
main: setup $(SOLVER)
|
File without changes
|
@@ -1,32 +1,10 @@
|
|
1
|
-
|
2
|
-
OUTPUT_D =../../build/go
|
3
|
-
DATA_D = ../../data
|
4
|
-
RUNNER = sh ../../bin/runner.sh
|
5
|
-
|
6
|
-
run = @$(RUNNER) $1 $(OUTPUT_D)/<%= prob.name %>Runner $(DATA_D)/$2 $(OUTPUT_D)/$2
|
7
|
-
|
8
|
-
default : usage
|
9
|
-
|
10
|
-
usage :
|
11
|
-
@cat $(GETTC_HOME)/usage
|
12
|
-
|
13
|
-
setup :
|
14
|
-
@if [ ! -d $(OUTPUT_D) ]; then mkdir -p $(OUTPUT_D); fi
|
15
|
-
@echo "[gettc] Compile solver"
|
1
|
+
include ../Makefile.common
|
16
2
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
main: setup $(OUTPUT_D)/<%= prob.name %>Runner
|
21
|
-
|
22
|
-
demo : main
|
23
|
-
$(call run,verbose,demo)
|
24
|
-
|
25
|
-
sys : main
|
26
|
-
$(call run,quiet,sys)
|
3
|
+
OUTPUT_D =../../build/go
|
4
|
+
SOLVER = $(OUTPUT_D)/<%= prob.name %>Solver
|
27
5
|
|
28
|
-
|
29
|
-
|
6
|
+
$(SOLVER): <%= prob.name %>Solver.go <%= prob.name %>/<%= prob.name %>.go
|
7
|
+
export GOPATH="$$GOPATH<%= File::PATH_SEPARATOR %>$(GETTC_HOME)/include/go" \
|
8
|
+
&& go build -o $(SOLVER) <%= prob.name %>Solver.go
|
30
9
|
|
31
|
-
|
32
|
-
@rm -rf $(OUTPUT_D)
|
10
|
+
main: setup $(SOLVER)
|
File without changes
|
@@ -1,33 +1,11 @@
|
|
1
|
-
|
1
|
+
include ../Makefile.common
|
2
|
+
|
2
3
|
OUTPUT_D = ../../build/haskell
|
3
|
-
|
4
|
+
SOLVER = $(OUTPUT_D)/<%= prob.name %>Solver
|
4
5
|
COMPILER = ghc -i$(GETTC_HOME)/include/haskell -outputdir $(OUTPUT_D)
|
5
|
-
RUNNER = sh ../../bin/runner.sh
|
6
|
-
|
7
|
-
run = @$(RUNNER) $1 $(OUTPUT_D)/<%= prob.name %>Runner $(DATA_D)/$2 $(OUTPUT_D)/$2
|
8
|
-
|
9
|
-
default : usage
|
10
|
-
|
11
|
-
usage :
|
12
|
-
@cat $(GETTC_HOME)/usage
|
13
|
-
|
14
|
-
setup :
|
15
|
-
@if [ ! -d $(OUTPUT_D) ]; then mkdir -p $(OUTPUT_D); fi
|
16
|
-
@echo "[gettc] Compile solver"
|
17
|
-
|
18
|
-
$(OUTPUT_D)/<%= prob.name %>Runner: <%= prob.name %>Runner.hs <%= prob.name %>.hs
|
19
|
-
$(COMPILER) -o $(OUTPUT_D)/<%= prob.name %>Runner $<
|
20
|
-
|
21
|
-
main: setup $(OUTPUT_D)/<%= prob.name %>Runner
|
22
|
-
|
23
|
-
demo : main
|
24
|
-
$(call run,verbose,demo)
|
25
6
|
|
26
|
-
|
27
|
-
$(
|
7
|
+
$(SOLVER): <%= prob.name %>Solver.hs <%= prob.name %>.hs
|
8
|
+
$(COMPILER) -o $(SOLVER) $<
|
28
9
|
|
29
|
-
|
30
|
-
$(call run,verbose,sys)
|
10
|
+
main: setup $(SOLVER)
|
31
11
|
|
32
|
-
clean :
|
33
|
-
@rm -rf $(OUTPUT_D)
|
File without changes
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
<target name="runner">
|
20
20
|
<echo file="${java.sh}" append="no">#! /bin/sh
|
21
|
-
java -cp "`dirname $0`${path.separator}${lib}" <%= prob.name %>
|
21
|
+
java -cp "`dirname $0`${path.separator}${lib}" <%= prob.name %>Solver $$*
|
22
22
|
</echo>
|
23
23
|
<chmod file="${java.sh}" perm="+x"/>
|
24
24
|
</target>
|
@@ -26,7 +26,7 @@ java -cp "`dirname $0`${path.separator}${lib}" <%= prob.name %>Runner $$*
|
|
26
26
|
<target name="compile-main">
|
27
27
|
<mkdir dir="${output.dir}"/>
|
28
28
|
<javac srcdir="." destdir="${output.dir}"
|
29
|
-
includes="<%= prob.name %>.java,<%= prob.name %>
|
29
|
+
includes="<%= prob.name %>.java,<%= prob.name %>Solver.java"
|
30
30
|
includeantruntime="no">
|
31
31
|
<classpath refid="classpath"/>
|
32
32
|
</javac>
|
@@ -63,4 +63,4 @@ java -cp "`dirname $0`${path.separator}${lib}" <%= prob.name %>Runner $$*
|
|
63
63
|
<target name="clean">
|
64
64
|
<delete dir="${output.dir}"/>
|
65
65
|
</target>
|
66
|
-
</project>
|
66
|
+
</project>
|
@@ -10,7 +10,7 @@ import org.topcoder.TypeRef;
|
|
10
10
|
<%
|
11
11
|
engine = JavaEngine.new func, vars
|
12
12
|
%>
|
13
|
-
public class <%= prob.name %>
|
13
|
+
public class <%= prob.name %>Solver {
|
14
14
|
public static void main(String[] args) {
|
15
15
|
try {
|
16
16
|
TopcoderReader reader = new TopcoderReader(new FileReader(args[0]));
|
@@ -29,4 +29,4 @@ public class <%= prob.name %>Runner {
|
|
29
29
|
err.printStackTrace(System.err);
|
30
30
|
}
|
31
31
|
}
|
32
|
-
}
|
32
|
+
}
|
@@ -1,27 +1,8 @@
|
|
1
|
-
|
2
|
-
OUTPUT_D = ../../build/python
|
3
|
-
DATA_D = ../../data
|
4
|
-
RUNNER = sh ../../bin/runner.sh
|
5
|
-
|
6
|
-
run = @$(RUNNER) $1 ./<%= prob.name %>Runner.py $(DATA_D)/$2 $(OUTPUT_D)/$2
|
7
|
-
|
8
|
-
default : usage
|
9
|
-
|
10
|
-
setup :
|
11
|
-
@if [ ! -d $(OUTPUT_D) ]; then mkdir -p $(OUTPUT_D); fi
|
12
|
-
@chmod +x <%= prob.name %>Runner.py
|
1
|
+
include ../Makefile.common
|
13
2
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
demo : setup
|
18
|
-
$(call run,verbose,demo)
|
19
|
-
|
20
|
-
sys : setup
|
21
|
-
$(call run,quiet,sys)
|
3
|
+
OUTPUT_D = ../../build/python
|
4
|
+
SOLVER = ./<%= prob.name %>Solver.py
|
22
5
|
|
23
|
-
|
24
|
-
$(
|
6
|
+
main: setup
|
7
|
+
chmod +x $(SOLVER)
|
25
8
|
|
26
|
-
clean :
|
27
|
-
@rm -rf $(OUTPUT_D)
|
File without changes
|
data/dist/usage
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gettc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seri
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hpricot
|
@@ -92,22 +92,23 @@ files:
|
|
92
92
|
- dist/template/prob/images/{images_d}
|
93
93
|
- dist/template/prob/{name}.html
|
94
94
|
- dist/template/prob/{name}.md
|
95
|
+
- dist/template/solve/Makefile.common
|
95
96
|
- dist/template/solve/cpp/Makefile
|
96
97
|
- dist/template/solve/cpp/{name}.cpp
|
97
|
-
- dist/template/solve/cpp/{name}
|
98
|
+
- dist/template/solve/cpp/{name}Solver.cpp
|
98
99
|
- dist/template/solve/go/Makefile
|
99
100
|
- dist/template/solve/go/{name}/{name}.go
|
100
|
-
- dist/template/solve/go/{name}
|
101
|
+
- dist/template/solve/go/{name}Solver.go
|
101
102
|
- dist/template/solve/haskell/Makefile
|
102
103
|
- dist/template/solve/haskell/{name}.hs
|
103
|
-
- dist/template/solve/haskell/{name}
|
104
|
+
- dist/template/solve/haskell/{name}Solver.hs
|
104
105
|
- dist/template/solve/java/Makefile
|
105
106
|
- dist/template/solve/java/build.xml
|
106
107
|
- dist/template/solve/java/{name}.java
|
107
|
-
- dist/template/solve/java/{name}
|
108
|
+
- dist/template/solve/java/{name}Solver.java
|
108
109
|
- dist/template/solve/python/Makefile
|
109
110
|
- dist/template/solve/python/{name}.py
|
110
|
-
- dist/template/solve/python/{name}
|
111
|
+
- dist/template/solve/python/{name}Solver.py
|
111
112
|
- dist/template/util/check/Makefile
|
112
113
|
- dist/template/util/check/check.cpp
|
113
114
|
- dist/usage
|