最新消息:点击查看大S的省钱秘笈

Vijos P1062 迎春舞会之交谊舞 C语言版

Vijos题解 Slyar 45浏览 0评论

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

描述 Description

BNUEP的同学们为了庆祝春节,准备排练一场舞会。
明显……交谊舞是2个人跳的,而且一男一女  -____-||||。
由于交谊舞之前的节目安排,所有的表演者都站成了一排。这一排人的顺序满足2点:
①对于一对舞伴男生站在女生的左边。
②任何一对舞伴之间,要么没有人,要么就有若干对舞伴。
排得过于整齐导致那些要表演交谊舞的人都没办法看到自己的舞伴,怎么办类…….
所幸的是,BNUEP的女生比男生聪明得多。她们知道自己左边有几个男生。
现在就请你再告诉这些女生,她们的舞伴距离她们多远(即包括那个男生,一共有多少男生夹在他们之间)。

输入格式 Input Format

第一行为一个数n,表示参与跳交谊舞的女生个数。
第二行n个数,从左到右表示这n个女生左边分别有多少个男生。

输出格式 Output Format

一排n个数,行末无空格。表示n个女生与其舞伴的距离。

Tip:设置一个男生的数组,全部置为0,从左边开始,每个女生在她左边离她最近的非0男生,就是她的舞伴。 然后把那个男生置1,继续找下一个女生。注意数据规模。

#include <stdio.h>

int main(){
int i,j,n,b[20000]={0},g[1501];
scanf("%d",&n);
for (i=1;i<=n;i++){
scanf("%d",&g[i]);
for (j=g[i];j>=1;j--)
if (!b[j]){
b[j]=1;
printf("%d ",g[i]-j+1);
break;
}
}
system("pause");
return 0;
}

转载请注明:Slyar Home » Vijos P1062 迎春舞会之交谊舞 C语言版

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址