-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy path10188.go
More file actions
61 lines (53 loc) · 1.03 KB
/
10188.go
File metadata and controls
61 lines (53 loc) · 1.03 KB
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
// UVa 10188 - Automated Judge Script
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
var (
s *bufio.Scanner
keepNum = func(r rune) rune {
if r >= '0' && r <= '9' {
return r
}
return -1
}
)
func compare(solution, output string) string {
switch {
case solution == output:
return "Accepted"
case strings.Map(keepNum, solution) == strings.Map(keepNum, output):
return "Presentation Error"
default:
return "Wrong Answer"
}
}
func getMultiLine(n int) string {
lines := make([]string, n)
for i := range lines {
s.Scan()
lines[i] = s.Text()
}
return strings.Join(lines, "\n")
}
func main() {
in, _ := os.Open("10188.in")
defer in.Close()
out, _ := os.Create("10188.out")
defer out.Close()
s = bufio.NewScanner(in)
s.Split(bufio.ScanLines)
var n int
for kase := 1; s.Scan(); kase++ {
if fmt.Sscanf(s.Text(), "%d", &n); n == 0 {
break
}
solution := getMultiLine(n)
s.Scan()
fmt.Sscanf(s.Text(), "%d", &n)
fmt.Fprintf(out, "Run #%d: %s\n", kase, compare(solution, getMultiLine(n)))
}
}