trang chủ / đề bài / banktrans

Chuyển tiền giữa các ngân hàng

Đề bài

Mô tả

Trong thành phố có N ngân hàng được xếp thành một vòng tròn: ngân hàng i và ngân hàng i+1 là hàng xóm của nhau với mọi 1≤i<N, và ngân hàng N cũng là hàng xóm của ngân hàng 1 (khi N>1). Không ngân hàng nào là hàng xóm của chính nó.

Vasya có một tài khoản ở mỗi ngân hàng. Số dư tài khoản có thể âm, nghĩa là Vasya đang nợ ngân hàng đó.

Chỉ có duy nhất một loại thao tác: chuyển một lượng tiền tuỳ ý từ tài khoản ở một ngân hàng sang tài khoản ở một ngân hàng hàng xóm. Không có giới hạn nào về lượng tiền được chuyển, và cũng không yêu cầu số dư phải không âm tại bất kỳ thời điểm nào.

Hãy tìm số thao tác ít nhất để đưa số dư của tất cả các tài khoản về 0.

Dữ liệu vào

  • Dòng đầu chứa số nguyên N là số ngân hàng.
  • Dòng thứ hai chứa N số nguyên a1,a2,…,aN, trong đó ai là số dư ban đầu của tài khoản ở ngân hàng thứ i.

Dữ liệu đảm bảo tổng tất cả các ai bằng 0, nên luôn tồn tại đáp án.

Dữ liệu ra

In ra một số nguyên duy nhất: số thao tác ít nhất cần thực hiện.

Ràng buộc

  • 1≤N≤100000
  • −109≤ai≤109
  • a1+a2+…+aN=0

Ví dụ

Input Output Giải thích
3
5 0 -5
1 Ngân hàng 1 và ngân hàng 3 là hàng xóm (vòng tròn), nên chỉ cần chuyển 5 từ ngân hàng 1 sang ngân hàng 3.
4
-1 0 1 0
2 Chuyển 1 từ ngân hàng 3 sang ngân hàng 2, rồi chuyển 1 từ ngân hàng 2 sang ngân hàng 1.
4
1 2 3 -6
3 Chuyển 1 từ ngân hàng 1 sang ngân hàng 2, chuyển 3 từ ngân hàng 2 sang ngân hàng 3, chuyển 6 từ ngân hàng 3 sang ngân hàng 4.

Bình luận

  • breakingbad
    đã bình luận 1 month trước

    #include <iostream>

    using namespace std;

    int i,n;

    int main(){

    return 0;

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0