四道结构体的题,写法要简单

#22. 小码君的抽象圣经-2
ID: 22
传统题
1000ms
256MiB
上传者:

root
题目描述
翻开小码君的《抽象圣经》,左看右看都觉得这些图形很漂亮,在看这些图形的过程中需要翻页,小码君觉得很麻烦,他想将自己觉得最好看的图形放在最上面,现在给出每个图形的抽象值,(抽象值越高越好看),有一些图形冥冥之中会带有魔力,这些带有魔力图形的页数放到最前面,都有魔力的图形按照抽象值排序,抽象值相同按照原本的页数顺序存放。

输入格式
一共输入一行,n个整数

第01行:一个整数n,表示抽象圣经的页数

第02行:输入第1页图形名称 抽象值 是否有魔力T表示有,F表示没有

第03行:输入第2页图形名称 抽象值 是否有魔力T表示有,F表示没有

第04行:输入第3页图形名称 抽象值 是否有魔力T表示有,F表示没有

第n+1行:输入第n页图形名称 抽象值 是否有魔力T表示有,F表示没有

输出格式
输出共n行,排序后的图形名字

第01行:输入第1页的图形的名字

第02行:输入第2页的图形的名字

第03行:输入第3页的图形的名字

第 n 行:输入第n页的图形的名字

样例
输入样例
5
Ac 48 T
Wa 91 T
Re 46 F
Tm 46 F
Ml 72 F
输出样例
Wa
Ac
Ml
Re
Tm
数据范围与提示
抽象值是一个不超过100的正整数

n<=1000

名称长度不超过50

#24. 小码君的水果分拣工厂-1
ID: 24
传统题
1000ms
256MiB
上传者:

root
题目描述
水果工厂的分拣机换了,需要你来调整一下程序,所有的苹果依次进入到分拣机中,苹果直径不超过10cm的苹果进入小苹果的流水线上,其他的进入到大苹果的流水线上。

输入格式
输入数据共2行

第01行:一个整数 n表示苹果个数 20<=n<=500,保证至少有一个大苹果和一个小苹果

第02行:n个整数 si(i从1到n)分表表示第i个苹果的直径 5<=si<=20

输出格式
一共输出2行数据

第01行:小苹果流水线上的苹果编号

第02行:大苹果流水线上的苹果编号

样例
输入样例
7
10 20 9 8 4 13 5
输出样例
1 3 4 5 7
2 6

#26. 小码君记录生日
ID: 26
传统题
1000ms
256MiB
上传者:

root
题目描述
小码君想调查学校每个同学的生日,并按照年龄从大到小的顺序排序。但小码君最近事情很多,没有时间,所以请你帮他排序。

输入格式
有2行,

第1行为学校总人数n(n<=10000);

第2行至第n+1行分别是每人的姓名s(名字长度不超过100)、出生年y、月m、日d。

输出格式
有n行,

每行输出一个同学的姓名,年龄大的先输出。(如果有两个同学生日相同,输入靠后的同学先输出)

样例
样例输入
4
Yangchu 1992 4 23
Qiujingya 1993 10 13
Luwu 1991 8 1
rongcheng 1993 10 13
样例输出
Luwu
Yangchu
rongcheng
Qiujingya

#21. 小码君的抽象圣经-1
ID: 21
传统题
50ms
256MiB
上传者:

root
题目描述
翻开小码君的《抽象圣经》,左看右看都觉得这些图形很漂亮,在看这些图形的过程中需要翻页,小码君觉得很麻烦,他想将自己觉得最好看的图形放在最上面,现在给出每个图形的抽象值,(抽象值越高越好看),如果抽象值相同按照原本的页号排放即可(按先来后到的顺序排列)。

输入格式
一共输入2行

第01行:一个整数n,表示抽象圣经的页数

第02行:n个整数ci(i从1到n)表示第i页图形的抽象值

输出格式
一共输出一行,n个整数

输出排序后每一页原来的页数

样例
输入样例
5
17 100 12 13 15
输出样例
2 1 5 4 3
数据范围与提示
抽象值是一个不超过100的正整数

n<=1000

1

#include<iostream>
using namespace std;
typedef struct data
{
    char name[50];
    int num;
    char ml;
} Data;

void sort(Data a[],int n)
{
    int i,j,c;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
        {
            if(a[j].ml == a[j+1].ml)
                c = a[j].num < a[j+1].num;
            else
                c = a[j+1].ml=='T';
            if(c)
            {
                Data t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
}

int main()
{
    int i,n;
    cin >> n;
    Data a[n];
    for (i = 0; i < n; i++)
        scanf("%s %d %c", a[i].name, &a[i].num, &a[i].ml);
    sort(a,n);
    for (i = 0; i < n; i++)
    {
        cout << a[i].name << endl;
    }
    return 0;
}

img

2

#include<iostream>
using namespace std;

int main()
{
    int i,n,d,al=0,bl=0;
    cin >> n;
    int a[n], b[n];
    for (i = 1; i <= n; i++)
    {
        cin >> d;
        if (d<=10)
            a[al++] = i;
        else
            b[bl++] = i;
    }
    for (i = 0; i < al; i++)
    {
        if (i>0)
            cout << " ";
        cout << a[i];
    }
    cout << endl;
    for (i = 0; i < bl; i++)
    {
        if (i>0)
            cout << " ";
        cout << b[i];
    }
    cout << endl;
    return 0;
}

img

3

#include<iostream>
using namespace std;
typedef struct data
{
    char name[100];
    int y,m,d;
} Data;

void sort(Data a[],int n)
{
    int i,j;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
        {
            if(a[j].y*10000+a[j].m*100+a[j].d >= a[j+1].y*10000+a[j+1].m*100+a[j+1].d)
            {
                Data t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
}

int main()
{
    int i,n;
    cin >> n;
    Data a[n];
    for (i = 0; i < n; i++)
        scanf("%s %d %d %d", a[i].name, &a[i].y, &a[i].m, &a[i].d);
    sort(a,n);
    for (i = 0; i < n; i++)
    {
        cout << a[i].name << endl;
    }
    return 0;
}

img

4

#include<iostream>
using namespace std;
typedef struct data
{
    int index;
    int num;
} Data;

void sort(Data a[],int n)
{
    int i,j;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
        {
            if(a[j].num < a[j+1].num)
            {
                Data t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
}

int main()
{
    int i,n;
    cin >> n;
    Data a[n];
    for (i = 0; i < n; i++)
    {
        cin >> a[i].num;
        a[i].index = i+1;
    }
    sort(a,n);
    for (i = 0; i < n; i++)
    {
        if (i>0)
            cout << " ";
        cout << a[i].index;
    }
    return 0;
}

img