1332:【例2-1】周末舞会时间限制: 1000 ms 内存限制: 65536 KB 提交数: 9639 通过数: 6757 【题目描述】在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。 【输入】第一行两队的人数; 第二行舞曲的数目。 【输出】配对情况。 【输入样例】 【输出样例】 |
教学备忘录:编辑 |
无 |
给学生提示:编辑 |
无 |
舞曲有几首,输出几行
将男女编号从小到大入队
两个队列同时输出队头元素,并将队头元素加入队尾,即入队(形成一个循环)
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
queue <int> q_man; // 代表男士队列
queue <int> q_woman; // 代表女士队列
int main()
{
int num_man, num_woman; // 男士 女士的人数
int sum; // 舞曲的数目
cin >> num_man >> num_woman;
for (int i = 1; i <= num_man; i ++) { // 男士编号按顺序入队
q_man.push(i);
}
for (int i = 1; i <= num_woman; i ++) { // 女士编号按顺序入队
q_woman.push(i);
}
cin >> sum;
for (int i = 0; i < sum; i ++) { // 每次将队头元素输出 并将队头元素入队 弹出队头元素
cout << q_man.front() << " ";
q_man.push(q_man.front());
q_man.pop();
cout << q_woman.front() << endl;
q_woman.push(q_woman.front());
q_woman.pop();
}
return 0;
}