【TFLSnoi李志帅】第一篇文章

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

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

【题目描述】

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

【输入】

第一行两队的人数;

第二行舞曲的数目。

【输出】

配对情况。

【输入样例】

4 6
7

【输出样例】

1 1
2 2
3 3
4 4
1 5
2 6
3 1
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
代码:
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 long long a[1005];//定义队列a表示男士队伍,由于本代码没有使用循环队列,所以要把数组开大写,足够它浪费
 4 int front=0,rear=0;
 5 void push(int x)
 6 {
 7 a[++rear]=x;
 8 }
 9 void pop ()
10 {
11 front++;
12 }
13 bool empty()
14 {
15 return rear==front ?1:0;
16 }
17 int top()
18 {
19 return a[front+1];
20 }
21 int size()
22 {
23 return rear-front;
24 }
25 int main()
26 {
27 int k,n,m,j;
28 cin>>m>>n>>k;
29 for(int i=1;i<=m;i++)
30 {
31 push(i);
32 }
33 int i=0;//定义计数器记录舞会曲数
34 for(j=1;j<=n;j++)
35 {
36 cout<<top()<<" "<<j<<endl;//打印出队首男士与女士的编号
37 push(top());//曲终,男士排到队尾等待
38 pop();
39 i++;//下一首舞曲
40 if(i==k)break;//判断
41 if(j==n)j=0;//因为每轮循环都要j++,所以要使下一轮循环j==1,就要把j归零;
42 }
43 return 0;
44 }

 

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