【TFLSnoi李志帅】第一篇文章

 

 

1332:【例2-1】周末舞会————信息学奥赛一本通

满分代码,可以直接抄
讲文明,守诚信,共创和谐环境

【题目描述】

假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。

【输入】

第一行两队的人数;

第二行舞曲的数目。

【输出】

配对情况。

【输入样例】

4 6
7

【输出样例】

1 1
2 2
3 3
4 4
1 5
2 6
3 1
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
代码:

#include <bits/stdc++.h>
using namespace std;
long long a[1005];//定义队列a表示男士队伍,由于本代码没有使用循环队列,所以要把数组开大写,足够它浪费
int front=0,rear=0;
void push(int x)
{
a[++rear]=x;
}
void pop ()
{
front++;
}
bool empty()
{
return rear==front ?1:0;
}
int top()
{
return a[front+1];
}
int size()
{
return rear-front;
}
int main()
{
int k,n,m,j;
cin>>m>>n>>k;
for(int i=1;i<=m;i++)
{
push(i);
}
int i=0;//定义计数器记录舞会曲数
for(j=1;j<=n;j++)
{
cout<<top()<<" "<<j<<endl;//打印出队首男士与女士的编号
push(top());//曲终,男士排到队尾等待
pop();
i++;//下一首舞曲
if(i==k)break;//判断
if(j==n)j=0;//因为每轮循环都要j++,所以要使下一轮循环j==1,就要把j归零;
}
return 0;
}

萌新上路,不喜勿喷哦,感谢
posted @ 2020-08-18 16:57  九州霜  阅读(28)  评论(0编辑  收藏  举报