周末舞会(队列)
题目描述
假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。
输入
第一行男士人数m和女士人数n;
第二行舞曲的数目k。
输出
共k行,每行两个数,表示配对舞伴的序号,男士在前,女士在后。
样例输入
4 3
6
样例输出
1 1
2 2
3 3
4 1
1 2
2 3
样例代码
#include <bits/stdc++.h>
using namespace std;
int a[10001], b[10001], k1 = 1, f1 = 1, f2 = 1, r1, r2, m, n, k;
void init()
{
cin >> m >> n;
cin >> k;
for (int i = 1; i <= m; i++) a[i] = i;
for (int i = 1; i <= n; i++) b[i] = i;
}
void queue_value()
{
r1 = m, r2 = n;
while (k--)
{
printf("%d %d\n", a[f1], b[f2]);
a[++r1] = a[f1++];
b[++r2] = b[f2++];
}
}
int main()
{
init();
queue_value();
return 0;
}