CF178A2.Educational Game

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

The Smart Beaver from ABBYY began to develop a new educational game for children. The rules of the game are fairly simple and are described below.

The playing field is a sequence of nn non-negative integers aia_{i} numbered from 11 to nn . The goal of the game is to make numbers a1,a2,...,aka_{1},a_{2},...,a_{k} (i.e. some prefix of the sequence) equal to zero for some fixed kk (k<n)(k<n) , and this should be done in the smallest possible number of moves.

One move is choosing an integer ii ( 1<=i<=n1<=i<=n ) such that ai>0a_{i}>0 and an integer tt (t>=0)(t>=0) such that i+2t<=ni+2^{t}<=n . After the values of ii and tt have been selected, the value of aia_{i} is decreased by 11 , and the value of ai+2ta_{i+2^{t}} is increased by 11 . For example, let n=4n=4 and a=(1,0,1,2)a=(1,0,1,2) , then it is possible to make move i=3i=3 , t=0t=0 and get a=(1,0,0,3)a=(1,0,0,3) or to make move i=1i=1 , t=1t=1 and get a=(0,0,2,2)a=(0,0,2,2) (the only possible other move is i=1i=1 , t=0t=0 ).

You are given nn and the initial sequence aia_{i} . The task is to calculate the minimum number of moves needed to make the first kk elements of the original sequence equal to zero for each possible kk (1<=k<n)(1<=k<n) .

输入格式

The first input line contains a single integer nn . The second line contains nn integers aia_{i} ( 0<=ai<=1040<=a_{i}<=10^{4} ), separated by single spaces.

The input limitations for getting 20 points are:

  • 1<=n<=3001<=n<=300

The input limitations for getting 50 points are:

  • 1<=n<=20001<=n<=2000

The input limitations for getting 100 points are:

  • 1<=n<=1051<=n<=10^{5}

输出格式

Print exactly n1n-1 lines: the kk -th output line must contain the minimum number of moves needed to make the first kk elements of the original sequence aia_{i} equal to zero.

Please do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams, or the %I64d specifier.

输入输出样例

  • 输入#1

    4
    1 0 1 2
    

    输出#1

    1
    1
    3
    
  • 输入#2

    8
    1 2 3 4 5 6 7 8
    

    输出#2

    1
    3
    6
    10
    16
    24
    40
    
首页