Muallif: __thecrash__

K. Yomg'irda yuvilgan chizmalar

Vaqt limiti: 2000 ms Xotira limiti: 256 mb

Shahar arxitektura byurosida \(n\) ta bino balandligini ko'rsatuvchi \([b_1, b_2, \dots, b_n]\) massivi saqlanadi — bu yerda har bir \(b_i\) musbat butun son.

Har bir \(i\) \((1 \le i \le n)\) uchun \(g(b)\) massivini quyidagicha aniqlaymiz:

  • Agar shunday \(j < i\) mavjud bo'lsaki, \(b_j < b_i\) bo'lsa, u holda \(g(b)_i = \max\limits_{j < i, \, b_j < b_i} j\). Ya'ni, \(g(b)_i\) — bu \(i\)-binodan chapda joylashgan, balandligi \(b_i\) dan qat'iy kichik bo'lgan eng o'ngdagi binoning raqami.
  • Aks holda \(g(b)_i = 0\).

\([y_1, y_2, \dots, y_n]\) manfiy bo'lmagan butun sonlar massivini tiklanadigan massiv deb ataymiz, agar shunday \(b\) balandliklar massivi mavjud bo'lsaki, \(g(b) = y\) bo'lsa.

Yaqinda yomg'ir arxivdagi qog'ozlarni yuvib yubordi — uzunligi \(n\) bo'lgan \(x\) massivda ba'zi raqamlar o'chib ketdi (o'chgan joy \(-1\) bilan belgilanadi), qolganlari esa \(-1 \le x_i \le n\) shartini qanoatlantiradi. \(x\) dagi har bir \(-1\) ni \([0, n]\) oralig'idagi butun songa almashtirib, nechta usulda \(x\) ni tiklanadigan massivga aylantirish mumkinligini hisoblang. Javobni \(10^9 + 7\) ga bo'lgandagi qoldiqni chiqaring.


Kiruvchi ma'lumotlar

Har bir test bir nechta sinovdan iborat. Birinchi qatorda bitta butun son \(t\) \((1 \le t \le 10^3)\) — sinovlar soni. Keyin sinovlar tavsifi keladi.

Har bir sinovning birinchi qatorda \(x\) ning uzunligini bildiruvchi bitta butun son \(n\) \((1 \le n \le 5000)\) beriladi.

Ikkinchi qatorda \(n\) ta butun son \(x_1, x_2, \dots, x_n\) \((-1 \le x_i \le n)\) beriladi.

Barcha sinovlar bo'yicha \(n\) yig'indisi \(5000\) dan oshmasligi kafolatlanadi.


Chiquvchi ma'lumotlar

Har bir sinov uchun, \(x'\) tiklanadigan massiv bo'lgan \(x'\) massivlari sonini \(10^9 + 7\) bo'yicha qoldiqni ifodalovchi bitta butun son chiqaring.

Misollar

# Input.txt Output.txt
1
5
1
-1
4
-1 -1 0 -1
6
-1 -1 -1 -1 -1 -1
5
-1 1 3 4 -1
3
0 1 2
1
4
132
0
1

Izoh

Birinchi sinov uchun faqat \([0]\) massiv tiklanadigan hisoblanadi — chunki \(n = 1\) da \(g(b)_1\) doim \(0\) bo'ladi (chapda hech qanday element yo'q), shuning uchun \(x'_1 = 1\) bo'lishi mumkin emas.

Ikkinchi sinov uchun faqat \([0, 0, 0, 0]\), \([0, 0, 0, 3]\), \([0, 1, 0, 0]\) va \([0, 1, 0, 3]\) massivlari tiklanadigan hisoblanadi.

Yechim yuborish