题目
问题 B: 舞会(DS线性结构)
时间限制: 1 Sec 内存限制: 128 MB
提交: 7 解决: 6
[提交][状态][讨论版]
题目描述
假设在周末舞会上,男士和女士们分别进入舞厅,各自排成一队。跳舞开始,依次从男队和女队队头各出一人配成舞伴,若两队初始人数不同,则较长那一队未配对者等待下一轮舞曲。现要求写一算法模拟上述舞伴配对问题。 你需要用队列操作实现上述算法
输入
先输入参加舞会人数,再分别输入参加舞会人的姓名和性别
输出
先输出配对的男女舞伴,若队伍有剩人,则输出剩下人性别及剩下人数目。
样例输入
6
张1 F
林1 F
王2 M
李1 F
薛2 M
翁1 F
样例输出
张1 王2
林1 薛2
F:2
代码块
#include <iostream>
#include <queue>
using namespace std;
int main(void)
{
int i, n;
cin>>n;
char ch;
string temp;
queue<string> f, m;
for(i=0; i<n; i++)
{
cin>>temp>>ch;
if(ch=='F')
f.push(temp);
else
m.push(temp);
}
string temp1, temp2;
while(!f.empty() && !m.empty())
{
temp1 = f.front();
temp2 = m.front();
f.pop();
m.pop();
cout<<temp1<<' '<<temp2<<endl;
}
if(!f.empty())
cout<<"F:"<<f.size()<<endl;
if(!m.empty())
cout<<"M:"<<m.size()<<endl;
}