Codeforces Round #696 (Div. 2)
14:10:49 |
C. Нууц түлхүүрийг хакердах
хугацааны хязгаарлалт 1 секунд
санах ойн хязгаарлалт 256 мегабайт
оролт стандарт оролт
гаралт стандарт гаралт
Поликарпус шинэ төрлийн нууцлалтай мэссенжерийн програмыг хакердах тэмцээнд оролцож байна. Тэр тэмцээнд ялахад тун ойрхон байлаа.
Поликарпус мэдээлэл солилцох протоколыг анхааралтай судалж үзээд, хэрвээ тэр програмын нийтийн түлхүүрийг (public key) хоёр хэсэгт зохистой хувааж чадвал нууц түлхүүрийг олж болно гэсэн дүгнэлтэнд хүрчээ. Нийтийн түлхүүр (public key) нь сая оронгоос ч бүрдэж болох урт бүхэл тоо байна!
Поликарпус нийтийн түлхүүрийг эхний (зүүн) хэсэг нь $a$ тоонд хуваагддаг, хоёр дахь хэсэг (баруун) нь $b$ тоонд хуваагддаг байхаар хоосон биш хоёр хэсэгт хуваах аргыг олох хэрэгтэй. Хоёр хэсэг нь хоёулаа тэгээр эхлээгүй эерэг бүхэл тоонууд байна. Поликарпус $a$ ба $b$ утгуудыг мэдэж байгаа.
Нийтийн түлхүүрийг хуваах тохиромжтой аргыг олоход Поликарпусд туслаарай.
Оролт
Оролтын эхний мөр нь мэссенжерийн нийтийн түлхүүрийг агуулна. Энэ нь тэгээр эхлээгүй, $1$-ээс $10^{6}$ хүртэлх цифрийн урттай бүхэл тоо байна. Хоёр дахь мөр нь зайгаар тусгаарлагдсан $a$, $b$ ($1 ≤ a, b ≤ 10^{8}$) эерэг бүхэл тоон хосыг агуулна.
Гаралт
Хэрвээ дээр дурьдсан нөхцлийг хангах хуваалт олдож байгаа бол эхний мөрөнд "YES" гэж хэвлэнэ. Энэ тохиолдолд дараа нь хуваасны дараах зүүн болон баруун хэсгүүдийг агуулсан хоёр мөр хэвлэнэ. Энэ хоёр хэсгийг нийлүүлэхэд яг нийтийн түлхүүртэй тохирч байх ёстой. Зүүн хэсэг нь $a$ тоонд хуваагддаг ба баруун хэсэг нь $b$ тоонд хуваагддаг байх ёстой. Хоёр хэсэг нь тэгээр эхлээгүй, эерэг бүхэл тоонууд байна. Хэрвээ олон хариу байгаа бол тэдгээрийн аль нэгийг хэвлэнэ.
Хариу байхгүй бол нэг мөрөнд "NO" гэж хэвлэнэ.
Орчуулсан: Даариймаа
Жишээ тэстүүд
Оролт
116401024 97 1024
Гаралт
YES 11640 1024
Оролт
284254589153928171911281811000 1009 1000
Гаралт
YES 2842545891539 28171911281811000
Оролт
120 12 1
Гаралт
NO