Đường đi trên ma trận

Đề bài

Mô tả

Cho một ma trận A kích thước x×y được điền các số nguyên theo quy tắc: ô ở hàng i, cột j (ký hiệu là ô (i,j)) chứa số

Ai,j=y·(i1)+j.

Như vậy mỗi số nguyên trong đoạn [1,x·y] xuất hiện đúng một lần trong ma trận.

Bạn đã đi theo một đường đi trên ma trận này, mô tả bởi dãy các ô lần lượt được thăm a1,a2,,an: bạn xuất phát ở ô chứa số a1, rồi di chuyển sang ô chứa số a2, rồi sang ô chứa số a3, và cứ thế tiếp tục.

Mỗi bước di chuyển, từ ô (i,j) bạn chỉ được sang một trong các ô kề cạnh: (i+1,j), (i1,j), (i,j+1) hoặc (i,j1) (miễn là ô đích vẫn nằm trong ma trận). Bạn bắt buộc phải di chuyển ở mỗi bước, không được đứng yên tại chỗ.

Bạn không nhớ chính xác xy. Hãy tìm bất kỳ cặp giá trị x,y với 1x,y109 sao cho đường đi trên là hợp lệ với ma trận x×y, hoặc khẳng định không tồn tại cặp nào như vậy.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n: số ô trên đường đi (một ô có thể được thăm nhiều lần, khi đó nó được liệt kê nhiều lần).
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

  • Nếu không có cặp x,y nào thỏa mãn, in ra NO.
  • Ngược lại, in ra YES trên dòng đầu, và trên dòng thứ hai in hai số nguyên xy (1x,y109) tương ứng với số hàng và số cột của ma trận. Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Ràng buộc

  • 1n2·105
  • 1ai109

Ví dụ

Input Output Giải thích
8
1 2 3 6 9 8 5 2
YES
1000000000 3
Với ma trận có 3 cột, dãy 1,2,3,6,9,8,5,2 là một đường đi hợp lệ (chẳng hạn với 109 hàng). Nhiều đáp án khác cũng đúng.
6
1 2 1 2 5 3
NO Không có cặp x,y nào khiến toàn bộ đường đi hợp lệ.
2
1 10
YES
1000000000 9
Với 9 cột, số 1 ở ô (1,1) và số 10 ở ô (2,1), hai ô kề nhau theo chiều dọc.

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