A. Үндэслэгчдийн төлөвлөгөө гаргалт

хугацааны хязгаарлалт 30 секунд

санах ойн хязгаарлалт 256 мегабайт

оролт стандарт оролт

гаралт стандарт гаралт

Энэхүү бодлогонд та ажил хуваарилах дэд систем зохиох юм.

Үндэслэгчид бол дүгнэлт гаргадаг системын нэгэн хэсэг юм. Энэхүү бодлогонд 2 төрлийн дүгнэлт гаргах боломжтой -- $OK$ (тест тэнцсэн) эсвэл $RJ$ (тест бүтэлгүйтсэн).

Ажил хуваарилдаг дэд системийг төлөвлөгөө гаргагч гэж нэрлэнэ. Та үүнийг хэрэгжүүлэх хэрэгтэй.

Бодлого болгонд 2 параметр өгөгдөнө: бодлогоны тестийн тоо болон хугацааны хязгаарлалт.

Систем маш хянамгай ажиллах бөгөөд нэг цагны цохилт (цагны чаг чаг дуугаралт) 10 миллисекундтэй тэнцэнэ. Хэрвээ зарим үйл явдал 10 мс-д хуваагдахааргүй мөчид болвол төлөвлөгөө гаргагч хамгийн ойрын дараагийн цагны цохилтод тооцно.

Тэмцээний дараа (өөрөөр хэлбэл, тэмцээн эхэлсэнээс 7 хоногийн дараа) таны хамгийн сүүлийн явуулсан бодлого (эерэг оноотой бол) эцсийн тестэнд сонгогдоно. Эцсийн тест нь нууцлагдсан бөгөөд тэмцээний үеэр хэрэглэгдэж байсан тестүүдээс ялгаатай. Эцсийн тестэнд авсан нийт оноо тэмцээний ялагчийг тодруулах болно.

Энэ үед зориулан бид тусгай хэд хэдэн ZIP-архивтай эх файл бэлдсэн байгаа. Бүх файл нь ZIP-файл дээр хийгдсэн бөгөөд өөр файл ашиглахыг хориглоно. Та үүнийг ашиглан:

  • Java 8: $main$ нь энгийн паккэжийн $Main$ ангилалд хамаарна;
  • GNU C++ 11: яг нэг файл $main$ хэсэгт байрлана. Бүх файлууд $cpp$ өргөтгөлтэй байна.

Танд хүсэлтүүд ба үндэслэгчийн дүгнэлтүүд хослон ирэх болно. Гаралтанд алдаа гаргахгүйн тулд үйлдэл болгоныхоо дараа $stream flushing$ үйлдлийг хийнэ үү. Жишээ нь, та C эсвэл C++ дээр $"fflush(stdout)$", Java дээр "$System.out.flush()$", Pascal дээр "$flush(output)$"-ыг ашиглаж болох юм.

Бодлого дараах байдлаар өгөгдөнө: $i$ дэхь хүсэлтийн нийт шалгах хугацаа нь $a_{i}$ байг (хүлээлтийг оруулна). Энэхүү хугацаа нь хүсэлт ирсэнээс хойш үүнийг шалгаж дуусах хүртэлх хугацаагаар тооцно. $n$ нь нийт шалгах хүсэлтүүдийн тоо байхаар -ийг олно. Нэг тестийн цэгийн тоог томьёогоор олно. Энд $A$ нь энгийн төлөвлөгөө гаргагчийн $r$, өөрөөр хэлбэл шүүгчийн, харин $B$ нь таны төлөвлөгөө гаргагчийн $r$.

Олон нийтийн тестийн материал удахгүй тавигдана. Паккежтэй материалуудад нэг interactor ба interacotrd зориулсан датанууд байна.

Оролт

Эхлээд таны програм дараах датануудыг уншина:

  • Эхний мөрөнд танд идэвхитэй үндэслэгчд (бүх үндэслэгчид зэрэг ажиллах бөгөөд мөн тусдаа ажиллана, чөлөөтэй үндэслэгчид нь шинээр ажил ноогдвол шууд хийж эхэлдэг)-ийн тоо болох нэг бүхэл тоо $t$ ($1 ≤ t ≤ 500$) өгөгдөнө;
  • 2 дахь мөрөнд бодлогоны тоо буюу тестэнд орох гэж буй хүсэлтийн тоо болох нэг бүхэл тоо $p$ ($1 ≤ p ≤ 10000$) өгөгдөнө.

Дараагийн $p$ ширхэг мөрөнд бодлогонуудын тайлбар өгөгдөнө. Тайлбар болгонд хугацааны хязгаарлалт (250-аас 3000-ын хооронд бүхэл тоо) болон тестийн тоо (1-ээс 1000-ын хооронд бүхэл тоо) өгөгдөнө.

Дараах датанууд interactive хэлбэрээр өгөгдөнө. Энэ нь дараах датанууд зөвхөн таны төлөвлөгөө гаргагч үүний өмнөх цохилтон дээрх мэдээллүүдийг бичсэний дараа гарж ирнэ гэсэн үг. Эхлээд цохилтын дараа шалгагдахаар ирсэн шинэ хүсэлтүүдийн датанууд . Хүсэлт болгон нэг бүхэл тоогоор илэрхийлэгдэнэ. Энэ тоо нь бодлогоны индекс (0-оос $p - 1$ хүртэл). $-1$ гэсэн утга нь энэ цохилтонд шалгагдахаар ирэх хүсэлт байхгүй гэсэн утгатай.

Дараа нь цохилтын дараах тестүүдийн үр дүнгүүд өгөгдөнө. Эдгээр мөрүүд нь 3-н элемэнт агуулна: хүсэлтийн индекс, тестийн тоо, тестийн дүгнэлт ($OK$ эсвэл $RJ$). Тестийн үр дүнгүүд $"-1 -1"$-ээр төгсөнө.

Бодлогууд болон тестүүд гарж ирэх дарааллаараа дугаарлагдсан (0-ээс эхлээд). Нэг тестний хүсэлтийн тоо 20000-ыг хэтрэхгүй.

Гаралт

Дараагийн цохилтын датаг уншсаны дараа таны төлөвлөгөө гаргагч тестны хүсэлтийг явуулах талаар шийдэх боломжтой. Хүсэлт аль мөчид аль ч тестэнд шалгагдах боломжтой. Таны төлөвлөгөө гаргагч 2 бүхэл тоо хэвлэх ёстой -- хүсэлтийн тестийг эхлэхийн тулд нэг мөрөнд хүсэлтийн индекс болон тестний тоо. Хэрвээ чөлөөтэй үндэслэгч байвал хүсэлтийн шалгалт шууд эхлэнэ (үр дүн иртэл үндэслэгч завгүй болох болно). Өөрөөр хэлбэл таны үр дүнгүүдийг шалгахгүй. Та үр дүнгүүдээ илгээж дуусаад $"-1 -1"$-ийг хэвлэнэ үү.

Та өөрийн програм дахь чөлөөтэй үндэслэгчдийн тоог хадгалах боломжтой. Үүний тулд үндэслэгчдэд үр дүнгээ явуулахын хажуугаар $t$ хугацааны хувьсагч болгоныг багасгаж (хэрвээ $t = 0$ бол илгээх шаардлагагүй), үндэслэгч үр дүнг буцаангуут $t$-г ихэсгэх хэрэгтэй.

Хэрвээ бодлогоны бүх тестүүд шалгагдсан эсвэл үр дүн $RJ$ гарсан тохиолдолд хүсэлтүүдийг шалгаж дууссанаар тооцно.

Бүх төлөвлөгдсөн хүсэлтүүд шалгагдаж дууссан үед interactor дуусна. Энэ тохиолдолд оролтын дата хаагдвал таны хүсэлт шууд зогсох хэрэгтэй.

Орчуулсан: Энхлут

Жишээ тэстүүд

Оролт
1
1
500 2
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
-1 -1
0
-1
-1 -1
0
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
0 0 OK
-1 -1
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
0 1 OK
-1 -1
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
-1 -1
-1
1 0 RJ
-1 -1
Гаралт
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
0 0
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
0 1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
1 0
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
1 1
-1 -1

Тэмдэглэл

Материалууд болон тестүүдийг http://assets.codeforces.com/files/vk/vkcup-2016-wr2-materials-v1.tar.gz-ээс харна уу. Өөрийн хариуг хэрхэн шалгахыг харахын тулд README.txt-ийг уншина уу.

Сэтгэгдлүүдийг ачааллаж байна...