Poi20

จาก Theory Wiki
รุ่นแก้ไขเมื่อ 08:37, 19 เมษายน 2557 โดย Jittat (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย '== Bytecomputer (Stage III day 1) == Source: [http://main.edu.pl/en/archive/oi/20/baj] '''Memory limit: 128 MB''' คุณได้...')
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา

Bytecomputer (Stage III day 1)

Source: [1]

Memory limit: 128 MB

คุณได้รับลำดับของจำนวนเต็ม n จำนวน x1, x2, ..., xn จากเซต {-1,0,1} bytecomputer เป็นเครื่องมือสำหรับประมวลผลกับลำดับดังกล่าว ได้ดังนี้

  • เพิ่มค่า xi+1 ขึ้น xi สำหรับ i ใด ๆ ที่ 1 <= i <= n

ไม่มีขีดจำกัดของขอบเขตของจำนวนเต็มที่เครื่อง bytecomputer จะสามารถจัดเก็บได้ นั่นคือแต่ละ xi จะสามารถเก็บจำนวนมาก ๆ เท่าใดก็ได้ และน้อย ๆ เท่าใดก็ได้

โปรแกรมเครื่อง bytecomputer เพื่อแปลงลำดับป้อนเข้าให้เป็นลำดับที่ไม่ลดลง (non-decreasing sequence) นั่นคือลำดับที่ x1 <= x2 <= ... <= xn โดยใช้จำนวนครั้งของการประมวลผลให้น้อยที่สุด

ข้อมูลป้อนเข้า

  • บรรทัดแรกระบุจำนวนเต็ม n (1 <= n <= 1 000 000) จำนวนข้อมูลในลำดับป้อนเข้า
  • บรรทัดที่สองมีจำนวนเต็ม n จำนวน x1, x2, ..., xn จากเซต {-1,0,1}

มีข้อมูลชุดทดสอบ 24% ที่ n <= 500 และ 48% ที่ n <= 10 000

ข้อมูลส่งออก

บรรทัดแรกและบรรทัดเดียวจะมีจำนวนเต็มหนึ่งจำนวน แทนจำนวนครั้งของการดำเนินการที่น้อยที่สุดที่ bytecomputer จะต้องใช้ในการแปลงลำดับข้อมูลนำเข้า หรือคำว่า BRAK (แปลว่าไม่ในภาษาโปแลนด์) ถ้าไม่สามารถดำเนินการได้

ตัวอย่าง

สำหรับข้อมูลนำเข้า:

6
-1 1 0 -1 0 1

ผลลัพธ์ที่ถูกต้องคือ:

3

คำอธิบาย: ใช้การดำเนินการ 3 ครั้ง ทำให้ได้ลำดับ -1, -1, -1, -1, 0, 1

ตัวอย่างข้อมูลทดสอบ: (ดูจากโทย์ภาษาอังกฤษ)

Task author: Jacek Tomasiewicz.

Maze (Stage III day 1)