背景
HNSDFZ的同学们为了庆祝春节,准备排练一场舞会。
描述
明显……交谊舞是2个人跳的,而且一男一女 -____-||||。
由于交谊舞之前的节目安排,所有的表演者都站成了一排。这一排人的顺序满足2点:
①对于一对舞伴男生站在女生的左边。
②任何一对舞伴之间,要么没有人,要么就有若干对舞伴。
排得过于整齐导致那些要表演交谊舞的人都没办法看到自己的舞伴,怎么办类…….
所幸的是,SDFZ的女生比男生聪明得多。她们知道自己左边有几个男生。
现在就请你再告诉这些女生,她们的舞伴距离她们多远(即包括那个男生,一共有多少男生夹在他们之间)。
格式
输入格式
第一行为一个数n,表示参与跳交谊舞的女生个数。
第二行n个数,从左到右表示这n个女生左边分别有多少个男生。
输出格式
一排n个数,行末无空格。表示n个女生与其舞伴的距离。
样例1
样例输入1
样例输出1
限制
各个测试点1s
提示
n<=1500
结果小于2^31-1
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<stack> using namespace std; int main() { stack<int> st; int a[1505],n,i,j,top; scanf("%d",&n); a[0]=0; for(i = 1;i <= n;i++) { scanf("%d",&a[i]); for(j = a[i-1]+2;j <= a[i]+1;j++) { st.push(j); } top = st.top(); st.pop(); printf("%d",a[i]+2-top); if(i != n) printf(" "); } return 0; }