Vector

Đề bài

Mô tả

Cho vector A trên mặt phẳng. Bạn cần biến nó thành vector B bằng cách thực hiện hai loại thao tác sau, mỗi loại có thể dùng bao nhiêu lần tùy ý và theo thứ tự bất kỳ:

  • Quay vector hiện tại một góc 90∘ theo chiều kim đồng hồ (điểm (x,y) trở thành (y,−x)).
  • Cộng vào vector hiện tại một vector cố định C cho trước.

Hãy xác định xem có thể biến A thành B hay không.

Dữ liệu vào

  • Dòng thứ nhất chứa hai số nguyên x1 và y1 là tọa độ của vector A.
  • Dòng thứ hai chứa hai số nguyên là tọa độ của vector B.
  • Dòng thứ ba chứa hai số nguyên là tọa độ của vector C.

Dữ liệu ra

In ra YES nếu có thể biến A thành B, ngược lại in ra NO.

Ràng buộc

  • Mọi tọa độ là số nguyên có giá trị tuyệt đối không vượt quá 108.

Ví dụ

Input Output Giải thích
0 0
1 1
0 1
YES Xuất phát từ (0,0), cộng C=(0,1) được (0,1), quay được (1,0), cộng C lần nữa được (1,1)=B.
0 0
1 1
1 1
YES Chỉ cần cộng C=(1,1) đúng một lần là được ngay B=(1,1).
0 0
1 1
2 2
NO Mọi tổ hợp cộng C=(2,2) và các phép quay chỉ tạo ra những vector không thể bằng (1,1).

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0