George và Số

Đề bài

Mô tả

George có một mảng gồm các số nguyên dương b1,b2,,b|b| (ký hiệu |b| là độ dài hiện tại của mảng). George liên tục biến đổi mảng bằng các phép thay đổi. Một phép thay đổi gồm các bước sau:

  • Chọn hai chỉ số phân biệt ij (1i,j|b|; ij) sao cho bibj.
  • Tạo số v=concat(bi,bj), trong đó concat(x,y) là số thu được bằng cách viết các chữ số của y ngay sau các chữ số của x. Ví dụ concat(500,10)=50010, concat(2,2)=22.
  • Thêm số v vào cuối mảng (độ dài mảng tăng thêm 1).
  • Xóa hai phần tử tại chỉ số ij khỏi mảng (độ dài mảng giảm đi 2), rồi đánh số lại các phần tử.

Sau nhiều phép thay đổi, mảng của George chỉ còn lại đúng một số p. Cho p, hãy tìm số phần tử tối đa mà mảng b ban đầu có thể có.

Lưu ý rằng mảng ban đầu chỉ chứa các số nguyên dương (không có số 0, và không có số nào chứa chữ số 0 ở đầu).

Dữ liệu vào

Một dòng duy nhất chứa số nguyên p (1p<10100000). Đảm bảo p không có chữ số 0 ở đầu.

Dữ liệu ra

In ra một số nguyên — số phần tử tối đa mà mảng b ban đầu có thể có.

Ràng buộc

  • 1p<10100000 (số p có thể có tới 100000 chữ số).

Ví dụ

Input Output Giải thích
9555 4 Mảng ban đầu có thể là {5,9,5,5}: {5,9,5,5}{5,5,95}{95,55}{9555}.
10000000005 2 Mảng ban đầu có thể là {1000000000,5}. Không được chia nhỏ hơn vì mảng không được chứa số 0.
800101 3 Mảng ban đầu có thể là {800,10,1}.
45 1 Chỉ có thể là {45}. Không thể là {4,5} vì từ đó chỉ tạo được {54} (cần bibj).
310200 2 Mảng ban đầu có thể là {310,200} (vì 310200); không thể tách được 3 phần tử.
19992000 1 Không thể tách vì phép ghép đầu tiên đã cần một số lớn hơn đứng trướ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 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