Tạo kỳ thi

Đề bài

Mô tả

Cho một tập gồm n bài toán có độ khó là a1,a2,,an. Các độ khó đều phân biệt và được cho theo thứ tự tăng dần.

Bạn cần chọn ra một tập con (không nhất thiết liên tiếp) các bài toán để tạo thành một kỳ thi. Tập con này phải thoả mãn: nếu sắp xếp các bài được chọn theo độ khó tăng dần là ai1<ai2<<aip, thì với mọi j từ 1 đến p1 ta có aij+12·aij.

Nói cách khác, hai bài kề nhau (sau khi sắp) trong tập đã chọn phải có độ khó của bài sau không vượt quá hai lần độ khó của bài trước. Một tập chỉ gồm một bài luôn hợp lệ.

Hãy tìm số bài tối đa có thể chọn được.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số lượng bài toán.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an — độ khó các bài, phân biệt và đã sắp tăng dần.

Dữ liệu ra

In ra một số nguyên duy nhất là số bài lớn nhất có thể chọn.

Ràng buộc

  • 1n2·105
  • 1ai109
  • a1<a2<<an

Ví dụ

Input Output Giải thích
10
1 2 5 6 7 10 21 23 24 49
4 Tập tối ưu là {5,6,7,10}: 62·5, 72·6, 102·7.
5
2 10 50 110 250
1 Mọi cặp kề nhau đều có tỉ lệ lớn hơn 2, nên không thể chọn quá một bài.
6
4 7 12 100 150 199
3 Có hai cách chọn cho ra 3 bài: {4,7,12} hoặc {100,150,199}.

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