Friday, April 15, 2016

Блок

Бодлогын нэр: Блок
Хугацаа: 1 сек

Бат Болд хоёр блокоор байшин барьж тоглож байгаа ба ингэхдээ тэр хоёр хоёулаа тус тусдаа сондгой тооны N ширхэг байшин цувуулан барив. Батын барьж байгаа байшингуудыг эхнээс нь mi гэж дугаарлаад мөн Болдын байшингуудыг si гэж дугаарлая (1 <= i <= N).
            Тэр хоёр өөрсдийн барьсан байшингуудаа бүгдийг нь харгалзан si болон miнь тэнцүү өндөртэй болгохоор шийдэв. Ингэхдээ дараах дүрмийг барина:
            Байшингуудын зүүн талаас эхлэх ба эхлээд бүх байшингуудын өндрүүдийг эрс буурах байдлаар болгоод хамгийн голын байшин хүрсний дараа дараачийн байшингуудын өндрийг эрс өсөх байдлаар өөрчлөхөөр болов. Ингэхдээ мөн дурын дараалсан хоёр байшингийн өндрийн зөрөөг 1 байлгана. Доорх зургаас тодорхой харна уу.

  
           




Ямар нэгэн байшингийн өндрийг өөрчлөхдөө тухайн байшингийн дээрээс нь нэг блок аваад хаяж болно (үүнийгээ дахин ашиглахгүй) эсвэл уутнаас шинэ блок гаргаж тухайн байшингийн дээр нь давхарлаж тавих гэсэн 2 үйлдэл зөвшөөрөгдсөн (саванд хангалттай тооны блок байгаа гэж үз).
            Таны даалгавар бол Бат Болд хоёрын тус тусдаа барьсан байшингуудын өндрүүд өгөгдсөн (хамгийн зүүн талаасаа) бол дээр дурьдсан байдлаар байшингуудаа өөржлөхөд хийгдэх хамгийн бага үйлдлийн тоог олох явдал юм.
           
Оролт:
Оролтын файлын эхний мөрөнд сондгой N (1 <= N <= 300 000) буюу Бат Болд хоёрын тус тусдаа барьж буй байшингуудын тоо.
Дараачийн хоёр мөрт тус бүр N тоо байх ба энэ нь эхлээд Батын барьсан байшингуудын өндрүүд зүүн талаасаа эхлэн өгөгдөнө mi. Дараа нь Болдын барьсан байшингуудын өндрүүд мөн зүүн талаасаа эхлэн өгөгдөнө si.
(0 <= mi<= 1012) (0 <= si<= 1012).
Гаралт:
Бодлогын хариу болох ганц тоо.

Жишээнүүд:
Оролт
Оролт
3
1 2 3
3 2 2
5
2 3 0 1 4
3 3 2 3 1

Гаралт
Гаралт
3
10

Тайлбар:

1-р жишээн дээр Бат эхний байшин дээрээ 2 блок тавина харин Болд 3 дахь байшин дээрээ нэг блок тавихад адилхан болно.

No comments:

Post a Comment