Masala #0450

Xotira 32 MB Vaqt 1000 ms
14

Qismsatr

Bu interaktiv masala!

Uzunligi \(n\) ga teng \(a_1,a_2,...,a_n\) nomanfiy butun son yashirilgan. Siz bitta so’rovda uning ixtiyoriy o’rindagi raqamini so’rashingiz mumkin. Ko’pi bilan 2ta so’rov yordamida, sonning 3ga bo’linadigan qismsatri bor yoki yo’qligini toping.

Ya’ni, shunday \(l\) va \(r\) \((1 \leq l \leq r \leq n)\) sonlar mavjudmi, bunda \(a_la_{l+1}...a_r = a_l \times 10^{r-l} + a_{l+1} \times 10^{r-l-1} + ... + a_r\) butun son 3 ga qoldiqsiz bo’linadi.

So'rov berish tartibi:
Sonning qaysidir raqamini bilish uchun ? i ko'rinishida ekranga chiqaring, javob tariqasida alohida qatorda \(a_i\) ning qiymatini olasiz. Agar so'rolar soni 2 tadan oshib ketsa Wrong Answer verdiktini olasiz.
Javobni topganingizdan so'ng, agar shartni qanoatlantiruvchi \(l\) va \(r\) mavjud bo'lsa ! YES, aks holda ! NO chiqaring.


Kiruvchi ma'lumotlar:

Birinchi qatorda \(n\) butun son kiritiladi \((1 \le n \le 100)\)

Har bir berilgan so'rov uchun \(a_i\) ning qiymatini olasiz.


Chiquvchi ma'lumotlar:

So'rov berish uchun ? i, javob berish uchun ! YES yoki ! NO chiqaring. Siz ko'pida 2 marta so'rov va aynan 1 marta javob berishingiz kerak.

ESLATMA: Interaktiv masalada sizning javobingizni hakamlar hay’ati qabul qila olishi uchun siz har bir so’rovingiz oxirida

  • Agar Pascal tilida ishlagan bo’lsangiz: flush(output)
  • Agar C/C++ tilida ishlagan bo’lsangiz fflush(stdout) yoki cout.flush()
  • Agar Java tilida ishlagan bo’lsangiz System.out.flush()
  • Agar pythonda ishlagan bo’lsangiz sys.stdout.flush()
  • Agar C# tilida ishlagan bo’lsangiz Console.Out.Flush()

Misollar
# input.txt output.txt
1
5
7

3
? 1

? 3

! YES
Izoh:

74325 soni o’ylangan edi. “? 1” so’roviga 7 va “? 3” so’roviga 3 javob berildi. \(𝑙=𝑟=3\) bo’lgan qismsatr = 3 va u 3ga bo’linadi. Demak javob YES.