Vijos 1062 交谊舞
题意:
n个人站一排,任意一对舞伴(男左女右)中间可能没人,也可能有好几对舞伴。
输入每个女生左边一共几个男生,输出该女生的舞伴是她左边第几个男生。
题解:
用p记录一共n对舞伴的位置(男生序号),输入女生左边男生数m后
若p[m]=0,该女生左边紧挨男生,第m个男生即为她的舞伴;
若p[m]=1,该女生左边有成对的舞伴,连续向左找到第一个没有舞伴的男生;
然后p[m]=1标记第m对已经有人占啦。
#include
using namespace std;
typedef unsigned long long llu;
int main()
{
int n,m,p[5000]={0};
cin>>n;
for(int i=0;i>m;
int sum=0,k=m;
while(p[k]){sum+=1;k--;}
if(i)cout<<' ';
cout<