Másele #R052F

Yad 32 MB Waqıt 1000 ms Qıyınshılıǵı 25 %
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.


Kiriwshi maǵlıwmatlar:

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

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


Shıǵıwshı maǵlıwmatlar:

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()

Mısallar
# input.txt output.txt
1
5
7

3
? 1

? 3

! YES
Túsindirme:

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.

Sheshimin jiberiw
Bul ámeldi orınlaw ushın sistemaǵa kiriń, eger profilińiz bolmasa qálegen waqıtta dizimnen ótiwińiz múmkin