trang chủ / bài tập / milkcows

Vắt sữa bò

Đề bài

Mô tả

N con bò xếp thành một hàng, đánh số từ 1 đến N từ trái sang phải. Mỗi con bò quay mặt về bên trái hoặc bên phải. Một con bò quay mặt sang trái nhìn thấy tất cả những con bò có chỉ số nhỏ hơn nó, còn một con bò quay mặt sang phải nhìn thấy tất cả những con bò có chỉ số lớn hơn nó.

Bạn cần vắt sữa mỗi con bò đúng một lần theo một thứ tự nào đó. Khi vắt sữa một con bò, mọi con bò đang nhìn thấy con bò đó (và chưa được vắt sữa) sẽ hoảng sợ và mất đi 1 đơn vị sữa. Một con bò có thể hoảng sợ nhiều lần (mỗi lần mất thêm 1 đơn vị), nhưng một con bò đã được vắt sữa rồi thì không còn hoảng sợ nữa.

Bạn được chọn thứ tự vắt sữa. Hãy tìm lượng sữa bị mất nhỏ nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa số nguyên N.
  • Dòng thứ hai chứa N số nguyên a1,a2,,aN, trong đó ai=0 nếu con bò thứ i quay mặt sang trái, và ai=1 nếu quay mặt sang phải.

Dữ liệu ra

  • In ra một số nguyên duy nhất là lượng sữa bị mất nhỏ nhất.

Ràng buộc

  • 1N200000
  • ai{0,1}

Ví dụ

Input Output Giải thích
4
0 0 1 0
1 Vắt theo thứ tự bò 3, 4, 2, 1. Khi vắt bò 3 (quay phải), bò 4 (quay trái, chỉ số lớn hơn) nhìn thấy và mất 1 đơn vị. Sau đó không mất thêm gì.
5
1 0 1 0 1
3 Không thể tránh mất 3 đơn vị: mỗi cặp gồm một con quay phải đứng trước một con quay trái đều làm mất đúng 1 đơn vị.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0