舞会(单向队列)

/*
舞会

【问题描述】

学校举办了一场舞会,男生和女生在入场时,各自排成一队。伴奏响起时,依次从男队和女队的队首各出一人配成舞伴。规定每个舞曲只有一对跳舞者,若两队初始人数不同,则较长的那一队中未配对者等待下一轮舞曲。请利用程序模拟这个过程。

输入:一行,三个数字m,n和p,分别表示男队人数、女队人数和舞曲数目。

输出: p行,每行两个数字,表示第i首舞曲的男女配对编号。(男生编号在前,女生编号在后,用一个空格隔开)

【样例输入】

4 3 6

【样例输出】

1 1

2 2

3 3

4 1

1 2

2 3
*/

#include<iostream>
using namespace std;


int main(){
  int font1=0,rear1=0,font2=0,rear2=0;
  nt man[10000],woman[10000];
  int m,n,p;
  cin>>m>>n>>p;
  for(int i=1;i<=m;i++){
    man[rear1]=i;
    rear1++;
  }
  for(int i=1;i<=n;i++){
    woman[rear2]=i;
    rear2++;
  }
  while(font1 != rear1 && font2 != rear2 && p > 0){
    cout<<man[font1]<<" "<<woman[font2]<<endl;
    man[rear1]=man[font1];
    woman[rear2]=man[font2];
    rear1++;
    font1++;
    rear2++;
    font2++;
    p--;
  }
  return 0;
}

 

 

 

posted @ 2020-12-02 11:50  Hi,小董先生  阅读(267)  评论(0)    收藏  举报