// Automated Judge Script package main import ( "bufio" "fmt" "os" "strconv" "unicode" ) func read_integer(scanner *bufio.Scanner) int { scanner.Scan() string_number := scanner.Text() number, err := strconv.Atoi(string_number) if err != nil { fmt.Println("Error in read_integer:", err) } return number } func write_integer(file *os.File, number int) { _, err := file.WriteString(fmt.Sprintf("%d\n", number)) if err != nil { fmt.Printf("error writing string: %v", err) } } func read_input_set(scanner *bufio.Scanner, how_many int) string { all_output := "" for test_case := 1; test_case <= how_many; test_case++ { scanner.Scan() all_output += scanner.Text() + "\n" } return all_output } func keep_digits(some_string string) string { result := "" for _, element := range some_string { if unicode.IsDigit(element) { result += string(element) } } return result } func main() { input_file, err := os.Open("judge.in") if err != nil { fmt.Println(err) } defer input_file.Close() scanner := bufio.NewScanner(input_file) output_file, err := os.Create("judge.out") // creating... if err != nil { fmt.Printf("error creating file: %v", err) return } defer output_file.Close() run := 1 input_set_size := read_integer(scanner) for input_set_size != 0 { output_1 := read_input_set(scanner, input_set_size) input_set_size = read_integer(scanner) output_2 := read_input_set(scanner, input_set_size) output_file.WriteString(fmt.Sprintf("Run #%d: ", run)) if output_1 == output_2 { output_file.WriteString("Accepted\n") } else if keep_digits(output_1) == keep_digits(output_2) { output_file.WriteString("Presentation Error\n") } else { output_file.WriteString("Wrong Answer\n") } input_set_size = read_integer(scanner) run++ } }