Үндэсний олимпиад гэж юу вэ?

Үндэсний олимпиад нь жил бүр зохион байгуулагддаг ба ACM-ICPC буюу Олон улсын програмчлалын олимпиадын нэг шат гэж хэлж болно. ACM-ICPC нь дэлхийн хэмжээний хамгийн том оюутнуудын дундах програмчлалын тэмцээн ба

Гэсэн байдлаар зохион байгуулагддаг. Дүрмийн хувьд багууд хүссэн ном, матералыг авж орох боломжтой 3 хүртэлх гишүүнтэй байх ба 12 орчим бодлогыг 4 цагийн турш дундаа 1 computer дээр боддог. Дэлгэрэнгүй дүрмийн талаар regional, final хараарай.

Монголын хувьд мөн жил бүр зохион байгуулдаг ба 2023-оны бодлого болон өөрийн анализыг хүргэж байна. Энэхүү тэмцээнд би ороогүй ба албан ёсны бодолт болон санаа биш тул алдаатай байвал comment бичээрэй. Мөн бодлогуудыг үүнээс харж болно

A. 4-н зүг, 8-н зовхис

Танд координатын хавтгайд хараахан байрлуулаагүй байгаа N ширхэг цэг болон M нөхцлүүд өгөгджээ. Нөхцөл бүр нь (i, j, s)-ээс бүрдэх бөгөөд энэ нь i -р цэгийн хувьд j-р цэг нь s зүгт байрладаг байх юм. Тэгвэл эдгээр M нөхцлүүдийг хангадаг байх N ширхэг цэг координатын хавтгайд байгуулж болох эсэхийг олж өгнө үү.

Analysis

Ямар тохиолдолд байгуулж чадахгүй вэ? Нэг цэг нь өөр цэгийн хоёр талд оршин байх нөхцөлтэй байвал чадахгүй.

Тэгвэл үүнийг хэрхэн шалгах вэ? Үүний тулд бид граф байгуулж болно. Өөрөөр хэлбэл нэг нөхцөл дээр i,j гэсэн хоёр орой нь s гэсэн нөхцлөөр холбоё. Хэрвээ цикл үүсэхгүй бол юу гэсэн үг вэ? энэ нь ой буюу салангид моднууд байгаа ба байгуулж байхдаа нөхцлөө шалгасан бол нэмэлт шалгах шаардлагагүй билээ. Харин цикл үүссэн тохиолдолд тухайн үүсч буй циклийн нөхцлийг шалгахад болно гэж бодож байна.

B. Үсэг хасах нь

Танд N урттай S тэмдэгт мөр болон Q ширхэг асуулга өгөгдөв. Асуулга болгонд l, r, a өгөгдөх бөгөөд энэ нь S тэмдэгт мөрний l-ээс r завсарт байгаа дэд тэмдэгт мөрнөөс тодорхой хэмжээний үсгүүдийг хассаны дараа a тэмдэгт мөрийг гаргаж авч болох эсэхийг олж өгөх юм.

Analysis

S тэмдэгтээс үсгүүдийг хассаны дараа M тэмдэгт мөр гарах уу? Энэ бодлогыг бид O(S)-р хийж чадна. Тэгвэл нэг хүсэлт бүрийн хувьд хамгийн муудаа (r-l+1) үйлдэл хийх ба энэ нь Q*N болох боломжтой. Энэ нь хязгаарлалтаар бол 500сая болох ба бараг л хугацаандаа амжиж магадгүй.

Гэхдээ хугацаандаа амжихгүй байж магадгүй ба болхоор өөр бодолт хийцгээе. Хязгаарлалтыг анзаарвал нийт хүсэлтэнд өгөгдөх тэмдэгт мөрийн урт нь саяаас хэтрэхгүй. Тиймээс мод шиг доорх бүтцийг үүсгий

  • F[i][26] нь юу хадгалах вэ гэвэл i-р элэмэнтээс хойш ямар нэг үсэг дараа нь ямар байрлалд байгааг хадгална. Өөрөөр хэлбэл байрлал бүрээс хамгийн ихдээ 26 ирмэг хойшоогоо татагдах ба энэхүү ирмэг нь хамгийн эхэлж орсон байрлалруу татагдана.

Энэхүү бүтцийг хэрхэн байгуулах вэ? гэвэл бид хойноос нь гүйх ба i-р элэмэнт дээр явж байх үед тэрхүү үсэг нь өмнөх элемэнтийн хамгийн ойрхон тухайн үсэг байна. Байгуулах process нь N*26 үйлдэл байх ба мөн санах ойн хувьд N*26 байна.

Хүсэлтэнд хэрхэн хариулах вэ? [l, r] завсарт a гэсэн string-г үүсгэж чадах эсэхийг шалгахдаа l-1-с хойш хамгийн эхний a[0] орсон байрлалруу очно Энэхүү үйлдлийг давтаж явахдаа тухайн байрлал нь r-с бага байна уу гэдгээ шалгаад явахад болно.

Энэхүү бодолт нь O(N*26 + хүсэлтийн урт)

C. Зам барьцгаая

Анх n ширхэт хот хоорондоо ямар ч холбогдсон замгүй байв. Гэхдээ хотын дарга нэгэн өдөр шийдвэр гаргаж m өдрийн турш өдөр бүр аль нэг 2 хотын хооронд шинэ зам барьж байхаар болов. Аль ч 2 хот нь нэгэндээ замаар дамжин очиж болдог хотуудыг холбоост хэсэг гэж нэрлэе. Тэгвэл таны даалгавар нь өдөр бүр шинэ зам баригдсаны дараа хэдэн холбоост хэсэг байгаа болон хамгийн том холбоост хэсэгт хэдэн хот байгааг мэдээлэх явдал юм.

Analysis

Сонгодог union find байна.

D. CEO

2023 оны топ аж ахуйн нэгжүүдийн захирлуудын уулзалт N суудалтай эгнээгээр ширээний ард зохион байгуулагдахаар төлөвлөгджээ. Уулзалтад мөн N тооны захирал уригдсан ба бүх хүнд яг хүрэхээр N сандал байрлуулж өмнөх ширээн дээр нь тухайн захирлын компанийн нэрийг бичжээ. Хурлыг зохион байгуулагч хатагтай их гярхай хүн бөгөөд захирлууд байрандаа суусны дараа захирал бүрийн суух суудлыг хамгийн ихдээ 1 удаа зөвхөн хажуу талын хүнтэй сольж суулгахад хэчнээн янзаар суулгаж болохыг мэдэхийг хүсжээ. Мөн нийтээрээ баруун тийшээ, зүүн тийш нэг удаа шилжиж суух боломжтой. Хурлыг зохион байгуулагчидад тусална уу.

Analysis

N хүртэлх захирал байхад бид нийт сольж суусан ялгаатай боломжийн тоог мэддэг гээд dp[N] гэж тэмдэглэе. N+1-р буюу шинэ 1 захирал нэмэгдэхэд

  • Тухайн захирал нь N-р захиралтай суудлаа сольхоор болсон тохиолдолд N-р захирал нь байраа солихгүй байх шаардлагатай ба өмнөхүүд нь хамаагүй. тиймээс энэхүү боломж нь dp[N-1] байна.
  • Тухайн захирал нь байраа сольдоггүй бол өмнөхүүд нь яаж суух нь хамаагүй ба энэхүү боломж нь dp[N] байна.

Тэгхээд dp[N+1] = dp[N] + dp[N-1] болж байна. Энэ нь fibonacci-н тоотой адил байна. Гэхдээ хязгаарлалт нь 10^5 гэсэн тул бид доороос нь байгуулж чадна. dp[1] = 1, dp[2] = 2 гээд 3-с эхлүүлээд байгуулахад болно. Сүүлд нь N-с хамаараад shift буюу бүгд шилжсэн гэсэн 2 боломжийг нэмж өгөхөд болно.

E. Хамгийн бага тоо

Танд N, D гэсэн хоёр натураль тоо өгөгдөнө.

  • N тоог D тоогоор нэмэгдүүлэх: N = N + D
  • N тоог түүний цифрүүдийг нийлбэрээр солих: N = digitsum(N) гэсэн хоёр үйлдэлийг хамгийн цөөн удаа хийхэд (үйлдэл хийхгүй ч байж болно) гарч болох хамгийн бага тоо болон үйлдлийн тоог тус тус олно уу.

Analysis

3-т хуваагддаг тооны фифрүүдийн нийлбэр нь 3-т худаагддаг (яагаад). Үүнийг анзаарвал тухайн тоог 3-т хуваасан үлдэгдэл нь цифрүүдийн нийлбэрийн үлдэгдэл болохнээ. Заа тэгвэл эхний тоо нь 3-т хуваагддаг дараагийн тоо нь 3-т мөн хуваагддаг бол бид 1-г гаргаж чадахгүй. Учир нь цифрүүдийн нийлбэр нь 3-т хуваагдсаар л байна. Ийм биш бол бид тухайн тоог 3-т хуваасан үлдэгдэл нь 1 болгохоор дараагийн тоог нэмж өгөхөд болно.

F. Атод

Атод гэх тоглоом маш энгийн дүрэмтэй. Тоглоом нь 1..K гэсэн K ширхэг үетэй ба тоглоомын i-р үеийг хожиход тоглогч i^3 оноо авдаг. Бат ойрын үед анхны тоог шимтэн судлаж байгаа нь түүны Атод тоглох чадварт сонин байдлаар нөлөөлжээ. Бат тоглоомын i-р үеийг хожихын тулд i нь өгөгдсөн N тоотой харилцан анхны тоо байх ёстой. Таны даалгавар бол Бат тоглоомын бүх K үеийг тоглосны дараа хэдэн оноотой байхыг олох юм.

Analysis

K тоо хүртэлх тоонууд дотор хэдэн ширхэг N-тэй харилцан анхны тоо байгаа вэ? гэдгээс илүү хэдэн ширхэг нь тийм биш вэ гэдгийг тоолъё. Яаж тоолох вэ? Бид N-тоогоо анхны тоон үржигдэхүүнд задлаад нэгтгэн зайлуулах бичихэд болно. Гэхдээ бидэнд тухайн тоонуудын кубуудын нийлбэр хэрэгтэй. Бид N тоотой харилцан анхы биш тоонуудын кубудын нийлбэрийг олоод нийт кубуудын нийлбэрээс хасахад болно.

Эхний ээлжинд 1-с N хүртэл тооны кубудын нийлбэрийг $$ \sum\nolimits_{i=1}^{N} i^3 = N^2 \cdot (N+1)^2/4 $$ гэж олж болдог.

Заа тэгвэл нэгтгэн зайлуулах хийж байхад X гэсэн үржвэр гарсан гэе. Тэгвэл X, 2X, 3X, ... (K/X)*X гэх мэт тоонуудын кубуудын нийлбэр чухал ба $$ \sum\nolimits_{i=1}^{\lfloor {K/X} \rfloor} (X \cdot i)^3 = X^3 \cdot \lfloor {K/X} \rfloor^2 \cdot (\lfloor {K/X} \rfloor + 1)^2/4 $$ болно. Нэгтгэн зайлуулах хийгээд гарсан нийлбэрийг 1-с K хүртэлх тоонуудын кубуудын нийлбэрээс хасахад харилцан анхны тоонуудын кубуудын нийлбэр үлдэнэ.

G. Хуулбар шалгах

Программчлалын уралдаанд оролцогчид бодлогын код болох f1, . . . , fN гэсэн N файлыг үнэлгээний системд илгээжээ. Үр дүнг эцсийн байдлаар зөвшөөрөхөөс өмнө шүүгчид нөгөөгөөсөө хуулсан буюу хулгайн үйлдэл байгаа эсэхийг тодорхойлохыг хүсэж байна. Тэд хоёр файлыг сонгон авч, бие биетэйгээ хэр их төстэй төстэй эсэхийг нь харьцуулан шалгадаг программтай. Гэсэн хэдий ч файлын тоо маш их тул бүх хосыг харьцуулахад хэтэрхий их цаг хугацаа шаардагдана. Түүнчлэн файлын хэмжээ ихээхэн зөрүүтэй бол тийм хосуудыг шалгалгүй орхихоор шийдсэн. Энэ үүднээс шүүгчид сонгон авсан нэг файлын хэмжээ нь нөгөө файлын хэмжээнээс 90%-аас бага байх хос файл бүрийг харьцуулалгүй алгасахаар болов. Тиймээс, харьцуулах программаар зөвхөн i ≠ j үед size(fi) ≤ size(fj) ба size(fi) ≥ 0.9 * size(fj) байх ялгаатай (fi, fj ) хос файлуудыг шалгана. Шалгах шаардлагатай хос файлуудын тоог тооцоолж өгнө үү.

Analysis

Эрэмбэлээд хамгийн бага хэмжээтэй файлаас эхлээд түүнтэй хос болж чадах өөрөөс нь бага хэдэн файл байгаа вэ? гэдгийг тоолоход болно. Ингэж тоолохдоо хоёртын хайлт ашиглаад олж болно. Өөрөөр хэлбэл элемэнт бүрээс өмнө elm*0.9 -с их буюу тэнцүү хэдэн элемэнт байгааг олно.

H. Автомат цэвэрлэгч

Бат оффисын өрөөнүүдийхээ шалыг байнга чийгтэй, цэвэрхэн байлгахын тулд автомат шал цэвэрлэгч авчээ. Шал цэвэрлэгч нь дараах үйлдлийг хийж чаддаг:

  • Харсан зүгрүүгээр урагшилж цэвэрлэнэ
  • Харж буй чиглэлийхээ баруун эсвэл зүүн чиг рүү 90 градус эргэлт хийж чадна.
  • Эргэлт хийх болгондоо хачин муухай чанга чимээ гаргадаг Шал цэвэрлэгчийг өрөө бүрт тохиргоо хийж ажилуулдаг ба Батын хүсэл бол өрөөнүүдийн бүх хэсгийг цэвэрлүүлэх, гэхдээ бас муухай чанга чимээг хамгийн цөөн тоогоор сонсохыг хүсэж байгаа тул та түүнд туслана уу. Автомат цэвэрлэгчийг эхлүүлэхдээ хаанаас ч хааш нь ч харуулж эхлүүлж болно.

Analysis

Бид аль болох эргэлт бага хийх ётсой. Тэгхийн тулд хамгийн урт шулуунаар явах хэрэгтэй ба энэ нь тэгш өнцөгтйин хувьд урт тал нь байна. Тиймээс бидний эргэлт богино талаас 1г хасааад 2т үржинэ

I. ChatGPT

Програмист Бат ЧатЖиПиТи-д дараах даалгаварыг өгтөл төвөггүй хариулж байх юм гэнэ. Энэ нь үг таах тоглоом. Бүгд хоорондоо ялгаатай 21-ээс ихгүй урттай англи цагаан толгойн жижиг үсгээс бүрдэх N ширхэг үгтэй үгийн сангаас үг хайх ба хайх үгнүүдийг илэрхийлэх К ширхэг хүсэлт өгнө. Хүсэлт бүрт эхнээс нь авахуулан тохирох үгийг хайж олоод явна. Хүсэлтийн бүтэцийн хувьд англи цагаан толгойн жижиг үсэг байх ба дээрх N ширхэг үг дотроос энэ өгөгдсөн үсгээр эхэлсэн бас хамгийн цөөн удаа өмнө нь олдсон үгийг тааж олох юм, мэдээж өмнөх хүсэлтүүдэд хариу болоогүй үг байсан ч болно. Хэрэв хүсэлтийн шаардлагыг хангасан олон үг олдвол цагаан толгойн дарааллаар үгнүүдээ өсөхөөр эрэмбэлээд хамгийн эхнийх нь хариу болно. Хүсэлт бүрт тохирох хариу байх нь баталгаатай. Бат өөрөө энэ даалгаварыг гүйцэтгэх програм бичсэн боловч түүний програм нь маш удаан ажиллаад байгаа тул танаас тусламж хүсэж байна.

Analysis

Үсэг бүрийн хувьд set аваад тухайн set-нь pair буюу хос элемэнт авах ба эхний утга нь хэдэн удаа орсон дараагийн утга нь тухайн string байна. Set-нь pair-г эхлээд эхнийхээр эрэмбэлээд, дараа нь хоёрдох элемэнтээр эрэмбэлнэ. Харин бид хайх үедээ set-н хамгийн эхний элемэнтийг авах ба үүнийг устгаад эхний утгыг нэгээр нэмэгдүүлэн буцаагаад хийхэд болно. Хугацааны үнэлгээ нь N*log(n) + Q*log(N)

J. Хөзөр

0-ээс n-1 хүртлэх тоонуудаар дугаарлагдсан хөзрүүд бүхий багц хөзөр өгөгдөв. Багц дотор i дугаартай хөзөр a[i] ширхэг байна. Бүхэл тоонуудын цуглуулга дээр хийгдэх minex үйлдэл нь уг цуглуулгад байхгүй, хамгийн бага, сөрөг биш бүхэл тоог буцаана. Жишээ нь minex({1, 2, 4, 12, 1, 7, 2, 0, 2, 5})=3 юм. Илбэчин багц дахь хөзрүүдийг хоосон биш хэсгүүд руу тараана. Хөзөр бүр нэг л хэсэгт харъяалагдах ёстой. Дараа нь тэрээр хэсэг бүрийн хувьд minex утгыг бодож олоод тэдгээрийн нийлбэрийг олдог. Илбэчин энэ нийлбэрийг хамгийн их байлгах тараалтыг олох ёстой. Үүнээс гадна багц дээр дараалсан q ширхэг өөрчлөлт явагддаг: заримдаа багц руу нэг шинэ хөзөр нэмэгддэг ба заримдаа нэг хөзрийг багцаас хасдаг. Илбэчин энэ дарааллын бүх агшинд minex-үүдийн нийлбэрийг хамгийн их байлгах тараалтыг олохыг хүсч байгаа: эхний өөрчлөлтийн өмнө болон эхний i өөрчлөлтийн дараах агшинд (энд i = 1, 2, …, q).

Analysis

Тухайн нэг багц өгөгдсөн байхад хамгийн сайн хуваалт нь юу байх вэ?

  1. 0-K хүртэлх бүх хөзөр байдаг бол тухайн цуглуулгаас гарах тоо нь K+1 байна.
  2. 0-K болон K-с 2 буюу түүнээс их хөзрүүд байдаг бол тухайн цуглуулгаас гарах тоо нь K+1 байна
  3. 0-с их хөзрүүд байдаг бол 0 байна.

Энэдээс бид 2-р нөхцөлрүү орох шаардлагагүй нь харагдаж байна.

  1. 0-K гэсэн багцыг S ширхэгийг гаргаж чаддаг
  2. 0-(K+d) гэсэн багцыг T ширхэгийг гаргаж чаддаг

Гэвэл S >= T ба $$ (K+d+1)*T + (K+1) \cdot (S-T) >= (K+1) \cdot S $$ байх ба бид хамгийн урт үүсгэж чадахаас эхлээд багасаад явах нь ашигтай байна.

Хамгийн сайн задаргаанд 0-X хүртэлхийг агуулсан цуглуулга хэдэн удаа ордог мөн цаана нь хэдэн ширхэг X хөзөр сул ордог вэ гэсэн 2 тоог хадгаля.

Y гэсэн хөзөр нэмэгдэхэд

  • Хэрвээ өмнөхийн эхний утга нь 0 байдаг бол бид шинэ цуглуулга үүсгэж чадахгүй тиймээс 2р утга буюу сул тоог нэгээр нэмнэ.
  • Хэрвээ өмнөхийн эхний утга нь 0-с их байдаг бол бид шинэ цуглуулга үүсгэж чадах ба
    • Хэрвээ өөрийнх нь эхний утга 0-с их байдаг бол бид шинэ цуглуулга үүсгэж болох ба энэ нь 0-Y байна. Өмнөхийн эхний утгыг хасна, одоогийн эхний утгыг нэмнэ. мөн хариугаа шинэчлэнэ.
    • Хэврээ өөрхийн нь эхний утга 0 байдаг бол арагшаагаа сул тоонууд байдаг бол бид тэрхүү цувааг үргэлжлүүлээд илүү уртыг гаргаж чадна. тэгхээр өөрөөс нь хойш хамгийн урт сул нь 0-с их тасралтгүй цувааг олно. Энэ хүртэлх бүр сул нь 1-р хасагдана. Мөн өмныхийн эхны утгыг хасна, шинэ уртын эхний утгыг нэмнэ. мөн хариугаа шинэчлэнэ.

Y гэсэн хөзөр хасагдахад

  • Хэрвээ өөрийнх нь хоёрдох буюу сул утга нь 0-с их бол хасахад болно.
  • Хэрвээ өөрийнх нь сул утга нь 0 бол
    • Хэрвээ өөрийнх нь эхний утга нь 0 бол өөрөөс нь хойш үүсгэж чаддаг цуглуулга дээр шинэчлэлт орох ба тэр нь хамгийн ойрхон эхний утга нь 1 байдаг цуваа байна. Түүний эхний утгыг нэгээр хасаад хариугаа шинэчлэнэ. Мөн энэ завсрын сул утгыг 1-р нэмнэ.
    • Хэрвээ өөрийнх нь эхний утга нь 0-с их бол эхний утгыг нэгээр хасаад өмнөх хамгийн эхний 1 хүртэлхийн сул утгыг нэгээр нэмнэ.

Сул цуваандээр тухайн завсарт нэгээр нэмэх, хасах гэсэн 2 үйлдэл хийж байгаа ба үүндээр бид Lazy Propagation in Segment Tree ашиглаж болно. Мөн энэхүү segment tree дээрээ тухайн завсар бүгд 0-с их үү үгүй юу гэсэн өөр нэг хувьсагч нэмээд хамгийн урт тухайн завсраас хойших дээр ашиглаж болно. Өөрөөр хэлбэл хайхдаа бид segment tree-с [L, R] завсарт сул тоонууд нь бүгд 0-с ихүү гэдгийг олж чадах ба хамгийн уртыг олохдоо хоёртын хайлт ашиглаж болно.

Иймэрхүү ерөнхий санаагаар бодож болно гэж бодож байна. Яг кодыг нь бичээд тестлэж үзээгүй бол бага зэрэг алдаатай байж магадгүйшүү.

K. Maze runner

Гүйгч N x N талбайд зүүн дээд нүднээс саадтай талбайд хамгийн богино зам туулж баруун доод булангийн нүдэнд очих даалгавартай. Хөдөлгөөнийг зөвхөн босоо болон хэвтээ тэнхлэгийн дагуу хийх боломжтой ( Диагональ хөдөлгөөн хийхгүй ). Талбайгаас гарах болон саадан дээр гарах боломжгүй.

Analysis

BFS буюу түвшний нэвтрэлт хийхэд болно. Өөрөөр хэлбэр орой нь нүд болох ба тухайн оройгоос 4 хүртэлх ирмэг гарж болно. Дээшээ, доошоо, баруун зүүн гээд.

L. Сонирхолтой тоо

1-ээс 9-ийн цифрээс бүрдсэн n (n<1000) оронтой тоо өгөгдөнө. Цифрүүдийн байрыг сольж сонирхолтой тоо үүсгэх боломжтой эсэхийг тогтооно. Сонирхолтой тоо нь дараах шинж чанартай. А=a1a2…an гэсэн n цифрээс бүрдэх ба n-ээс бага бүх p анхны тооны хувьд a[p]=a[i*p] нөхцөлийг хангана. n/p -ээс ихгүй натурал тоо i-ийн бүрийн энэ нөхцөл биелж байвал A тоог сонирхолтой тоо гэнэ.

Сонирхолтой тоо үүсгэх боломжтой бол YES гэж хэвлээд дараагийн мөрөнд үүсгэх боломжтой сонирхолтой тоог хэвлэнэ. Хэрэв олон хувилбар үүсгэх боломжтой бол хамгийн багыг хэвлэнэ. Сонирхолтой тоо үүсгэх боломжгүй бол NO гэж хэвлэнэ.

Analysis

2 нь хамгийн бага анхны тоо ба N/2-с бага буюу тэнцүү бүх анхны тоон байрлал нь 2-р байрлалын элемэнттэй адилхан байна. Тиймээс N/2-с бага буюу тэнцүү анхны тоонд хуваагддаг бүх байрлал нь ижил байх ёстой. N/2-с эрс их анхны тоонуудын тоог X гэвэл N-X-1-с их ширхэгээс их буюу тэнцүү орсон цифр байдаг бол YES үгүй бол NO байна.

Хамгийн бага байрлылн хувьд N/2-с бага буюу тэнцүү анхны тоонуудын аль нэгэнд хуваагддаг байрлалаас бусад дээр нь үлдсэн цифрээ өсөхөөр эрэмбэлээд тавьхад болно.

Хураангyй

Энэ жилийн хувьд дээрх бодлогууд ирсэн ба тэмцээний дүнгээр МУИС-н баг түрүүлсэн байсан. Бүсийн олимпиадруу явахаар болсон багуудад амжилт хүсье.

Дээрх бодлогууд дээр өөр санаа, эсвэл алдаатай хэсэг байвал доор бичээд үлдээгээрэй. Хэрвээ хүсвэл тухайн бодлогуудын кодыг оруулж болношүү. Мөн цаашдаа оруулах алгоритм, бодлого байвал явуулаарай.