Trạng thái

Đề bài

Tìm kiếm văn bản

Lam viết chương trình tạo ra một số nguyên có \(N\) chữ số và ghi vào một tệp văn bản. Sau đó mở tệp đó trong một chương trình soạn thảo văn bản, chọn bôi đen (đánh dấu) một số chữ số đầu tiên (bên trái) và chơi trò chơi cùng với chức năng Find – Next của chương trình.

Cách hoạt động của Find – Next như sau: - Nếu đoạn văn bản được chọn (từ đầu chuỗi) xuất hiện lần nữa trong chuỗi nhưng ở vị trí khác, thì dấu chọn sẽ di chuyển đến vị trí xuất hiện tiếp theo đó. - Nếu đoạn văn bản không xuất hiện lại, dấu chọn không di chuyển.

Lam muốn biết: - Có bao nhiêu chữ số đầu tiên cần chọn (tính từ trái sang) sao cho khi dùng Find – Next, dấu chọn sẽ di chuyển. - Và vị trí đầu tiên mà dấu chọn di chuyển tới là vị trí nào.

Các chữ số được đánh số từ trái sang phải bắt đầu từ \(1\).

Dữ liệu vào

Một dòng ghi số nguyên \(x\)\(N\) chữ số (\(1 \leq N \leq 10^7\)).

Dữ liệu ra

Ghi ra hai số nguyên trên một dòng, cách nhau bởi dấu cách: - Số đầu tiên: số lượng chữ số lớn nhất từ đầu chuỗi để khi dùng Find – Next thì dấu chọn sẽ di chuyển. - Số thứ hai: vị trí đầu tiên mà dấu chọn di chuyển tới.

Nếu không có vị trí nào khiến dấu chọn di chuyển, in ra 0 1.

Sample Input 1

12312312312

Sample Output 1

5 7

Sample Input 2

1234567890

Sample Output 2

0 1

Giải thích

  • Input 12312312312: chọn 5 chữ số đầu tiên 12312, thấy xuất hiện lại từ vị trí 7.
  • Input 1234567890: không có tiền tố nào lặp lại sau đó, nên output là 0 1.

Giới hạn

  • 30% số test: \(0 < n < 1000\)
  • 30% số test: \(999 < n < 10000\)
  • 40% số test: \(9999 < n < 10^7\)
Thông tin
Thông tin bài tập
Gửi bài giải
Điểm
100
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
977 M
I/O
stdin -> stdout
Tác giả
Loại đề bài
B07 - Thuật toán cơ bản : Duyệt xâu
Ngôn ngữ cho phép
C, C#, C++, Java, Pascal, Python, Text