Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "os"
- "bufio"
- "bytes"
- )
- func main() {
- var tests int
- scr := bufio.NewReader(os.Stdin)
- fmt.Fscanln(scr,&tests)
- for i := 0; i<tests; i++ {
- matrix := read_matrix(scr)
- find_matrix := read_matrix(scr)
- found := true
- for j := 0 ; j<len(matrix)-len(find_matrix)+1; j++ {
- found = true
- z := 0
- for k:= range find_matrix{
- if k == 0 {
- z = bytes.Index(matrix[j+k],find_matrix[k])
- if z == -1 {
- found = false
- break
- }
- } else {
- if !bytes.HasPrefix(matrix[j+k][z:],find_matrix[k]) {
- found = false
- break
- }
- }
- }
- if found { break }
- }
- if found {
- fmt.Println("YES")
- } else {
- fmt.Println("NO")
- }
- }
- }
- func read_matrix(f *bufio.Reader)[][]byte {
- var R,C int
- fmt.Fscanln(f,&R,&C)
- buf := make([][]byte,0,R)
- for i:=0;i<R;i++ {
- line, _ := f.ReadBytes('\n')
- buf = append(buf,line[:len(line)-1])
- }
- return buf
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement