Qızıl açar və ya Buratinin macəraları#4494

Qızıl açar və ya Buratinin macəraları

0,1 saniyə
64 meqabayt
Çox asan

Buratino son zamanlar seqment ağacı adlı bir məlumat strukturunu kəşf edib.

Seqment ağacı mahiyyətcə ikili ağacdır, burada hər bir qovşaq [l; r] sərhədləri ilə müəyyən olunan seqment haqqında məlumat saxlayır. Kök qovşaq bütöv ardıcıllığı nümayiş etdirir, burada ardıcıllığın uzunluğudur. Digər bütün qovşaqlarda isə belədir: əgər l = r-dirsə, qovşaq yarpaqd ır. Əks halda, o, dəqiq iki övlad qovşağa malikdir, hansılar ki, müvafiq olaraq və [m+1, r] seqmentləri haqqında məlumat saxlayır. Seqment ağacı ən səmərəli şəkildə seqmentlər və [m+1, r] bərabər uzunluqda olduqda qurulur. Lakin əgər [l; r] seqmentinin uzunluğu təkdirsə, onda onu bərabər hissələrə bölmək mümkün deyil. Bu zaman ya sol, ya da sağ seqment digərində bir vahid uzun olacaq. Hər performansdan sonra Buratino uzunluğu olan massiv üçün seqment ağacı qurur. Hər dəfə isə, bərabər bölmə mümkün olmadıqda, təsadüfi olaraq, solunmu, yoxsa sağınmı daha uzun olacağına qərar verir.

Sənin vəzifən müəyyən etməkdir: Buratino neçə müxtəlif seqment ağacı qura bilər.

Giriş

Giriş bir sətirdən ibarətdir və ədədi verilir (1 \leq N \leq 2 \cdot 10^9) — Buratinonun seqment ağacını quracağı massiv uzunluğu.

Çıxış

Bir sətirdə Buratinonun quracağı müxtəlif ağacların sayını çap et. Cavab çox böyük ola biləcəyindən nəticəni 10^9+7 moduluna görə çap et.

Nümunələr

Nümunə 1

Loading
Loading