L1-030. 一帮一

简介: L1-030. 一帮一“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。

L1-030. 一帮一

“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。

输入格式:

输入第一行给出正偶数N(<=50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1:1,并且没有并列名次。

输出格式:

每行输出一组两个学生的姓名,其间以1个空格分隔。名次高的学生在前,名次低的学生在后。小组的输出顺序按照前面学生的名次从高到低排列。

输入样例:
8
0 Amy
1 Tom
1 Bill
0 Cindy
0 Maya
1 John
1 Jack
0 Linda
输出样例:
Amy Jack
Tom Linda
Bill Maya
Cindy John

/*
分析: 先把数据放入数组结点
输出时把用过的x赋为-1
*/

#include <iostream>
using namespace std;
struct node{
    int x;
    string ch;
};
int main()
{   
    int n;
    cin >> n;
    node *list = new node [n];
    for(int i = 0; i < n; i++) {
        cin >> list[i].x >> list[i].ch;
    }
    for(int i = 0; i < n; i++) {
        if(list[i].x == -1) {
            continue;
        }
        cout << list[i].ch;
        if(list[i].x == 0) {
            list[i].x = -1;
            int end = n;
            while(end--) {
                if(list[end].x == 1) {
                    cout << " " <<list[end].ch <<endl;
                    list[end].x = -1;   //标记用过了 
                    break;
                }
            } 
        } else if(list[i].x == 1){
            int end = n;
            list[i].x = -1;
            while(end--) {
                if(list[end].x == 0) {
                    cout << " " <<list[end].ch <<endl;
                    list[end].x = -1;   //标记用过了 
                    break;
                }
            }
        }
    }

    return 0;   
}
目录
相关文章
我的Qt作品(3)基于QTabWidget和AdvancedDocking实现的Ribbon风格主界面【开源】
我的Qt作品(3)基于QTabWidget和AdvancedDocking实现的Ribbon风格主界面【开源】
1711 0
我的Qt作品(3)基于QTabWidget和AdvancedDocking实现的Ribbon风格主界面【开源】
|
6月前
|
Unix Linux Shell
linux中nohup和/dev/null,21
linux中nohup和/dev/null,21
126 0
|
6月前
|
开发框架 .NET 编译器
C# 10.0中Lambda表达式的改进:更简洁、更灵活的代码编写体验
【1月更文挑战第21天】随着C#语言的不断发展,Lambda表达式作为一种简洁、高效的函数式编程工具,在C# 10.0中迎来了重要的改进。本文将详细探讨C# 10.0中Lambda表达式的新特性,包括参数类型的推断增强、自然类型的Lambda参数以及Lambda表达式的属性改进等。这些改进不仅简化了Lambda表达式的编写过程,还提升了代码的可读性和灵活性,为开发者带来了更优质的编程体验。
|
6月前
|
监控 数据可视化 Java
Elasitcsearch CPU 使用率突然飙升,怎么办?
Elasitcsearch CPU 使用率突然飙升,怎么办?
136 1
|
6月前
|
安全 数据安全/隐私保护 C++
C/C++基础知识——字符串(二)
C/C++基础知识——字符串
213 0
|
6月前
|
应用服务中间件 Python 容器
ERROR [ntContainer#0-1] o.s.a.r.l.SimpleMessageListenerContainer 1917: Failed to check/redeclare aut
ERROR [ntContainer#0-1] o.s.a.r.l.SimpleMessageListenerContainer 1917: Failed to check/redeclare aut
241 0
|
Linux 开发工具 git
linux 将本地代码提交至github上(新版图文详解)
linux 将本地代码提交至github上(新版图文详解)
linux 将本地代码提交至github上(新版图文详解)
|
XML JSON 算法
【数据集转换】VOC数据集转COCO数据集·代码实现+操作步骤
与VOC一个文件一个xml标注不同,COCO所有的目标框标注都是放在一个json文件中的。
1407 1
|
测试技术
性能测试(19)——定时器
loadrunner称为集合点,SyncTimer的目的是阻塞线程,直到阻塞了n个线程,然后立即释放它们。 同步定时器相当于一个储蓄池,累积一定的请求,当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起并发,所以可以用来做大数据量的并发请求。 添加方式:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> Synchronizing Timer
353 0
|
人工智能
L1-064 估值一亿的AI核心代码 (20 分)
L1-064 估值一亿的AI核心代码 (20 分)
377 0
L1-064 估值一亿的AI核心代码 (20 分)