trang chủ / bài tập / vanyafield

Cánh đồng của Vanya

Đề bài

Mô tả

Cho một cánh đồng vuông kích thước n×n ô, các ô có tọa độ (x,y) với 0x,yn1. Trên cánh đồng có m cây táo; cây thứ i nằm ở ô (xi,yi). Một ô có thể chứa nhiều cây táo.

Người đi đường xuất phát từ một ô nào đó và di chuyển theo vector (dx,dy): nếu đang ở ô (x,y) thì sau một bước sẽ tới ô ((x+dx)modn,(y+dy)modn). Người đó dừng lại ngay khi bước tới một ô đã từng đi qua.

Hãy chọn ô xuất phát sao cho trên hành trình đi qua được nhiều cây táo nhất (mỗi cây trên đường đi đều được tính, kể cả nhiều cây trong cùng một ô).

Dữ liệu đảm bảo gcd(dx,n)=gcd(dy,n)=1, do đó xuất phát từ mỗi ô, hành trình luôn đi qua đúng n ô phân biệt rồi mới lặp lại.

Dữ liệu vào

  • Dòng đầu chứa bốn số nguyên n, m, dx, dy.
  • m dòng tiếp theo, dòng thứ i chứa hai số nguyên xi, yi là tọa độ cây táo thứ i.

Dữ liệu ra

In ra hai số nguyên là tọa độ (x,y) của ô xuất phát cho hành trình đi qua nhiều cây táo nhất. Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 1n106
  • 1m105
  • 1dx,dyngcd(dx,n)=gcd(dy,n)=1
  • 0xi,yin1

Ví dụ

Input Output Giải thích
5 5 2 3
0 0
1 2
1 3
2 4
3 1
4 0 Xuất phát từ (4, 0), hành trình là (4, 0) → (1, 3) → (3, 1) → (0, 4) → (2, 2), đi qua 2 cây táo tại (1, 3) và (3, 1). Không có ô nào cho nhiều hơn 2 cây, nên (1, 3) hay (0, 4) cũng là đáp án hợp lệ.
2 3 1 1
0 0
0 1
1 1
0 0 Xuất phát từ (0, 0), hành trình là (0, 0) → (1, 1), đi qua 2 cây táo tại (0, 0) và (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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0