游戏“帝国时代”里有一张岛国地图,N个城市等距离地在一条直线上,相邻城市之间的路程是1天(游戏中的)。
N个城市从左到右每个城市里的士兵数保存在一个数组中,N是奇数,就有一个中间位置,称为中央城。现在中央城遭到攻击,发出了召集令,所有的城市中的士兵都赶往中央城救援。请计算出中央城(N+1)/2天里,每天的士兵数。
输入格式
第一行1个整数n(奇数),范围在[1,100000]。
第二行有n个[1,10000]范围的整数,整数间用一个空格分隔。
输出格式
(N+1)/2个整数。
输入/输出例子1
输入:
7
7 12 8 8 5 6 4
输出:
8 21 39 50
样例解释
样例解释:
第1天中央城(第4城市)有8个士兵;
第2天第3、5城市的到达,士兵数增加(8+5),为21;
第3天第2、6城市的到达,士兵数增加(12+6),为39;
第4天第1、6城市的到达,士兵数增加(7+4),为50;
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int main(){
int n,mid,max,sum;
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d", &a[i]);
mid=(n+1)/2,max=(n-1)/2,sum=a[mid];
printf("%d",sum);
for(int i=1;i<=max;i++){
sum+=a[mid-i]+a[mid+i];
printf(" %d",sum);
}
return 0;
}
1533

被折叠的 条评论
为什么被折叠?



