首页 > 试题广场 >

有序序列合并

[编程题]有序序列合并
  • 热度指数:76554 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。

数据范围: , 序列中的值满足

输入描述:
输入包含三行,

第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。

第二行包含n个整数,用空格分隔。

第三行包含m个整数,用空格分隔。


输出描述:
输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。
示例1

输入

5 6
1 3 7 9 22
2 8 10 17 33 44

输出

1 2 3 7 8 9 10 17 22 33 44
C语言
思路:先合并,然后排序
上代码
#include <stdio.h>
//冒泡排序
void hebing(int* arr,int sum)
{
    for(int i = 0;i<sum-1;i++)
    {
        for(int j = 0;j<sum-i-1;j++)
        {
            if(arr[j]>arr[j+1])
            {
                int temp =arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
}
int main()
{
     int n = 0;
     int m = 0;
     scanf("%d %d",&n,&m);
     int arr1[1000];
     int arr2[1000];
     for(int i = 0;i<n;i++)
     {
        scanf("%d",&arr1[i]);
     }

      for(int i = 0;i<m;i++)
     {
        scanf("%d",&arr2[i]);
     }

     int arr[2000];
   //合并
     for(int i = 0;i<n+m;i++)
     {
         if(i<n)
         arr[i]=arr1[i];
         else
          arr[i]=arr2[i-n];
     }
     hebing(arr,n+m);    //排序
     
    for(int i = 0;i<n+m;i++)
     {
         printf("%d ",arr[i]);
     }
    return 0;
}

发表于 2024-11-22 21:06:27 回复(0)
#include <stdio.h>

int main() {
    int n=0, m=0;
    int i=0,j=0;
    scanf("%d %d",&n,&m);
    int arr[30000]={0};
    for(int i=0;i<n+m;i++){
        scanf("%d",&arr[i]);
    }
    //排序,排成升序
   for(i=0;i<n+m-1;i++){//比较的趟数
    for(j=0;j<n+m-1-i;j++){//每一趟比较的对数
        int tmp=0;
        if(arr[j]>arr[j+1]){//前一个数和后一个数比较
            tmp=arr[j];
            arr[j]=arr[j+1];
            arr[j+1]=tmp;
        }
    }
   }
   //输出
   for( i = 0;i<n+m;i++){
    printf("%d",arr[i]);
    if(i<n+m-1){//如果不是最后一个元素,打印空格
        printf(" ");
    }
   }
    return 0;
}

发表于 2024-11-16 19:17:21 回复(0)
#include <stdio.h>
int main() {
    int a, b;
    int i, x;
    int n, m;
    while (scanf("%d %d", &a, &b) != EOF) {
        int arr[a];
        int arr1[b];
        for (i = 0; i < a; i++) {
            scanf("%d", &arr[i]);
        }
        for (i = 0; i < b; i++) {
            scanf("%d", &arr1[i]);
        }
        x = a + b;
        n = a;
        m = b;
        a = b = 0;
        for (i = 0; i < x; i++) {
           
            if (arr[a] < arr1[b] && a < n ) {
                printf("%d ", arr[a]);
                a++;
            }
            else if(b < m){
                printf("%d ", arr1[b]);
                b++;
            }
            else{
                printf("%d", arr[a]);
            }
        }
    }
    return 0;
}
发表于 2024-09-13 18:09:42 回复(0)
#include<stdio.h>
int main()
{
	int n = 0;
	int m = 0;
	scanf("%d %d", &n, &m);
	int arr1[1001] = { 0 };
	int arr2[1001] = { 0 };
	int merged[2002] = { 0 };
	for (int i = 0; i < n; i++)//输入第一行的n个元素
	{
		scanf("%d", &arr1[i]);
	}
	for (int i = 0; i < m; i++)//输入第二行的m个元素
	{
		scanf("%d", &arr2[i]);
	}

    int i = 0;
    int j = 0;
    int k = 0;
    while (i < n && j < m)//由于题目中的两个数组是升序排列,右值一定大于左值,所以该循环最终的结果会以遇到某数组中一个巨大的值为上限,将另一数组遍历排序完
    {
        if (arr1[i] < arr2[j]) //升序排列两数组中的元素,当一组数据被彻底遍历完之后,另一组剩下的只有一些更大的值
        {
            merged[k++] = arr1[i++];
        }
        else 
        {
            merged[k++] = arr2[j++];
        }
    }

    //补漏,将上限值及其升序排列的所有右值添加到merged中  
    while (i < n) //当arr1里面还有值,陆续放到merged中
    {
        merged[k++] = arr1[i++];
    }
    while (j < m) //当arr2里面还有值,陆续放到merged中
    {
        merged[k++] = arr2[j++];
    }

    //如果题目改成无序数组,另加一个冒泡排序即可

    // 输出合并后的序列  
    for (int l = 0; l < k; l++)
    { 
        printf("%d ", merged[l]);
    }
    printf("\n"); 

	return 0;
}

发表于 2024-08-21 15:15:53 回复(0)
#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    int arr1[n], arr2[m], arr3[n + m];

    for (int i = 0; i < n; i++) {
        scanf("%d", &arr1[i]);
    }
    for (int i = 0; i < m; i++) {
        scanf("%d", &arr2[i]);
    }

    int i = 0, j = 0, k = 0;
    while (i < n && j < m) {
        if (arr1[i] < arr2[j]) {
            arr3[k++] = arr1[i++];
        } else {
            arr3[k++] = arr2[j++];
        }
    }

    while (i < n) {
        arr3[k++] = arr1[i++];
    }
    while (j < m) {
        arr3[k++] = arr2[j++];
    }

    for (int i = 0; i < k; i++) {
        printf("%d ", arr3[i]);
    }

    return 0;
}

发表于 2024-08-16 11:16:55 回复(0)
#include <stdio.h>
#include <stdlib.h>

int * merge_sort(int arrn[], int arrm[], int n, int m);

int main()
{
    int n, m;
    scanf("%d %d", &n, &m);
    int arrn[n];
    int arrm[m];
    int i = 0;
    while(i < n)
    {
        scanf("%d", &arrn[i]);
        i++;
    }
    i = 0;
    while(i < m)
    {
        scanf("%d", &arrm[i]);
        i++;
    }

    int * merge = NULL;
    merge = merge_sort(arrn, arrm, n, m);

    for(i = 0; i < n + m; i++)
    {
        printf("%d ", merge[i]);
    }
    free(merge);
    return 0;
}

int * merge_sort(int arrn[], int arrm[], int n, int m)
{
    int * merge = (int *)malloc((n + m) * sizeof(int));
    if (merge == NULL)
    {
        printf("Memory allocation failed\n");
        exit(1);
    }

    for(int num = 0; num < n + m; num++)
    {
        if (num < n)
        {
            merge[num] = arrn[num];
        }
        else
        {
            merge[num] = arrm[num - n];
        }
    }

    for(int i = 0; i < n + m - 1; i++)
    {
        for(int j = 0; j < n + m - 1 - i; j++)
        {
            if(merge[j] > merge[j + 1])
            {
                int temp = merge[j];
                merge[j] = merge[j + 1];
                merge[j + 1] = temp;
            }
        }
    }
    return merge;
}
发表于 2024-08-09 17:57:52 回复(0)
#include <stdio.h>
#include <stdlib.h>

int main() {
    int m, n;
    scanf("%d %d",&n, &m);

    //方法一,对于很大的数就效率比较低
    //时间复杂度为O((N+M)^2) 空间复杂度O(1)
    // int sum = m + n;
    // //申请m+n个大小的数组
    // int* a = (int*)malloc(sizeof(int)* (m + n));
    // for(int i = 0; i < sum; i++)
    // {
    //     scanf("%d", &a[i]);
    // }

    // //冒泡排序
    // for(int i = 0; i < sum - 1; i++)  //冒泡排序的趟数
    // {
    //     for(int j = 0; j < sum - 1 - i; j++)//一趟的交换次数
    //     {
    //         //升序
    //         if(a[j + 1] < a[j])
    //         {
    //             int tmp = a[j];
    //             a[j] = a[j + 1];
    //             a[j+1] = tmp;
    //         }
    //     }
    // }

    // //打印前五个数
    // for(int i = 0; i < m + n; i++)
    // {
    //     printf("%d ", a[i]);
    // }
    

    //方法二
    //以下代码vs能跑通过,这种是牺牲空间换时间的写法
    //时间复杂度为O(M + N),空间复杂度O(M+N)
    //申请三个数组
    int* a = (int*)malloc(sizeof(int) * (m+n));
    int* arr1 = (int*)malloc(sizeof(int) * n);
    int* arr2 = (int*)malloc(sizeof(int) * m);
    //输入数据
    for(int i = 0; i < n; i++)
    {
        scanf("%d", &arr1[i]);
    }
    for(int i = 0; i < m; i++)
    {
        scanf("%d", &arr2[i]);
    }

    int p1, p2, p;
    p = p1 = p2 =0;
    //当有一个走完就得跳出来
    while (p1 < n && p2 <m) 
    {
        if(arr1[p1]  < arr2[p2])
        {
            // a[i] = arr1[p1];
            // p1++;
            a[p++] = arr1[p1++];
        }
        else
        {
            a[p++] = arr2[p2++];
        }
    }

    //还没走完的数组需要插入到数组a
    if(p1 == n) //数组arr1走完,说明数组arr2没走完
    {
        while (p2 < m)
        {
            a[p++] = arr2[p2++];
        } 
    }
    if(p2 == m)
    {
        while (p1 < n)
        {
            a[p++] = arr1[p1++];
        } 
    }

    //打印数组
    for(int i = 0; i < m+n; i++)
    {
        printf("%d ",a[i]);
    }
    //释放申请的空间
    free(a);
    free(arr1);
    free(arr2);
    a = arr1 = arr2 = NULL;
    return 0;
}


发表于 2024-06-22 13:41:35 回复(0)
#include <stdio.h>
int main() {
    int n,m,i,j;
    int arr1[1000],arr2[1000],arr3[2000];//创建三个数组,将n和m个数放入arr3,在进行冒泡排序
    scanf("%d %d", &n, &m);
    for(i=0;i<n;i++)
    {
        scanf("%d", &arr1[i]);
      arr3[i]=arr1[i];
    }
    for(j=0;j<m;j++)
    {
        scanf("%d", &arr2[j]);
        arr3[n+j]=arr2[j];
    }
    int a,b;
    for(a=0;a<n+m;a++)
    {
        int tmp=0;
        for(b=a;b<n+m;b++)
        {
            if(arr3[a]>arr3[b])
            {
                tmp=arr3[a];
                arr3[a]=arr3[b];
                arr3[b]=tmp;
            }
        }
    }
    for(int k=0;k<n+m;k++)
    {
        printf("%d ", arr3[k]);
    }
    return 0;
}
发表于 2024-06-07 11:48:58 回复(0)
#include <stdio.h>
#include<stdlib.h>

int com_int(const void* e1,const void* e2)
{
    return *(int*)e1-*(int*)e2;
}

void print(int pa[],int sz)
{
    int i=0;
    for(i=0;i<sz;i++)
    {
        printf("%d ",pa[i]);
    }
}

int main()
{
    int n=0;
    int m=0;
    int arr1[1000]={0};
    int arr2[1000]={0};
    int arr3[2000]={0};
    int i=0;
   
    scanf("%d %d",&n,&m);

    //输入第一组数
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr1[i]);
    }

    //输入第二组数
    for(i=0;i<m;i++)
    {
        scanf("%d",&arr2[i]);
    }

    //将前两组数据导入第三组
    for(i=0;i<n+m;i++)
    {
        if(i>=n)
        {
            arr3[i]=arr2[i-n];
        }
        if(i<n)//可与上面else
        {
            arr3[i]=arr1[i];
        }
    }
    qsort(arr3,n+m,sizeof(arr3[0]),com_int);
    print(arr3,n+m);

    return 0;
}
发表于 2024-05-29 15:25:32 回复(0)
#include <stdio.h>

int main() {
    int n = 0, m=0;//个数
    scanf("%d %d", &n, &m);

    int a[2000]={0};
    //输入a组数据, 输入b组数据
    int i=0;
    for (i=0; i<n; i++)//输入个数为n的数据
    {
        scanf("%d", &a[i]);
    }
     for (int i=n; i<m+n; i++)//输入个数为m的数据
    {
        scanf("%d", &a[i]);
    }

    //排序
    for (int k = 1; k <n+m; k++)
    {
        for (i = 0; i < n+m-1; i++)
        {
            if (a[i] > a[i + 1])
            {
                int temp = a[i + 1];
                a[i + 1] = a[i];
                a[i] = temp;
            }
        }
    }

    //打印
    for (int j = 0; j < n+m; j++)
        {
            printf("%d ", a[j]);
        }
   

   
    return 0;
}
发表于 2024-05-10 11:58:30 回复(0)
#include <stdio.h>

    void merge_sorted_arrays(int* arr1,int n,int* arr2,int m,int* merged_sorted_arr)
{
    int i = 0;
    int j = 0;
    int k = 0;
    while (i < n && j < m)
    {
        if (arr1[i] < arr2[j])
            merged_sorted_arr[k++] = arr1[i++];
        else
            merged_sorted_arr[k++] = arr2[j++];
    }
    while (i < n)
    {
        merged_sorted_arr[k++] = arr1[i++];
    }
    while (j < m)
    {
        merged_sorted_arr[k++] = arr2[j++];
    }
}
int main()
{
    int n = 0;
    int m = 0;
    scanf("%d %d", &n, &m);
    int arr1[n] ;
    int arr2[m] ;
    int merged_sorted_arr[n + m] ;
    int i = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr1[i]);
    }
    for (i = 0; i < m; i++)
    {
        scanf("%d", &arr2[i]);
    }
    merge_sorted_arrays(arr1, n, arr2, m,merged_sorted_arr);
    for (i = 0; i < n + m; i++)
    {
        printf("%d ", merged_sorted_arr[i]);
    }
    return 0;
}
编辑于 2024-04-17 22:56:35 回复(0)
#include <stdio.h>
#include <stdlib.h>
void sort_merge(int *a,int *b,int n,int m)
{   
    int i,j,tem;
    for(i=0;i<m;i++)//合并两个数组
    *(a+i+n)=*(b+i);

    for(i=0;i<(m+n-1);i++)//冒泡排序
    {
        for(j=0;j<(m+n-i-1);j++)
        {
            if(*(a+j)>*(a+1+j))
            {
                tem = *(a+j);
                *(a+j) = *(a+1+j);
                *(a+1+j) = tem;
            }
        }
    }
}

int main() {
    int i,n,m;
    scanf("%d",&n);
    scanf("%d",&m);
   int *a = (int *)malloc((n+m)*sizeof(int));
   int *b = (int *)malloc(m*sizeof(int));

   for(i=0;i<n;i++)
        scanf("%d",a+i);
  
  for(i=0;i<m;i++)
    scanf("%d",b+i);

   sort_merge(a, b, n, m);

   for(i=0;i<(n+m);i++)
    printf("%d ",*(a+i));

    return 0;
}

编辑于 2024-04-07 15:51:23 回复(0)
#include <stdio.h>
int main()
{
	//arr1内的数据
	int n = 0;
	//arr2内的数据
	int m = 0;
	scanf("%d %d", &n, &m);
	int arr1[1000] = { 0 };
	int arr2[1000] = { 0 };
	int arr3[2000] = { 0 };
	//输入arr1的值
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr1[i]);
	}

	//输入arr2的值
	int j = 0;
	for (j = 0; j < m; j++)
	{
		scanf("%d", &arr2[j]);
	}
	//使下标都为0
	i = 0;
	j = 0;
	int k = 0;//arr3下标
	//开始比较
	while (i < n && j < m)
	{
		if (arr1[i] < arr2[j])
		{
			arr3[k] = arr1[i];
			i++;
			k++;
		}
		else
		{
			arr3[k] = arr2[j];
			j++;
			k++;
		}
	}
	//arr1遍历结束,需要将arr2中剩余的元素全部放入arr3中
	if (i == n)
	{
		while (j < m)
		{
			arr3[k] = arr2[j];
			j++;
			k++;
		}
	}
	else//arr2遍历结束,需要将arr1中剩余的元素全部放入arr3中
	{
		while (i < n)
		{
			arr3[k] = arr1[i];
			i++;
			k++;
		}
	}
	//打印arr3的数据
	i = 0;
	for (i = 0; i < n + m; i++)
	{
		printf("%d ", arr3[i]);
	}
	return 0;
}

发表于 2024-04-06 16:25:50 回复(0)
int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    int arr1[1000];
    int arr2[1000];
    int i=0;
    for ( i = 0; i < a; i++)
    {
        scanf("%d",&arr1[i]);
    }

    for (i = 0; i < b; i++)
    {
        scanf("%d",&arr2[i]);
    }
    int j=0, k=0;
    while (j<a&&k<b)
    {
        if (arr1[j] < arr2[k])
        {
            printf("%d ", arr1[j]);
            j++;
        }
        else
        {
            printf("%d ", arr2[k]);
            k++;
        }
    }
    if (j<a)
    {
        for (;j < a; j++)
        {
            printf("%d ", arr1[j]);

        }
    }
    else
    {
        for (; k < b; k++)
        {
            printf("%d ", arr2[k]);

        }
    }

    return 0;
}
编辑于 2024-03-20 16:37:29 回复(0)
/*
思路是利用动态分配,建立3个数组
前2个数组    -> 存放用户输入的数据
最后1个数组  -> 存放合并后的数列

为了方便对内存进行操作,我选择了3指针的方式
*/

#include <stdio.h>
#include <malloc.h>

int main()
{
	int n = 0;
	int m = 0;
	int i = 0;//操作指针arrOne
	int j = 0;//操作指针arrTwo
	int k = 0;//操作指针arrCombine
	int flag = 0;
	int* arrOne = NULL;
	int* arrTwo = NULL;
	int* arrCombine = NULL;

	scanf("%d%d", &n, &m);

	//为数列开辟空间
	arrOne = (int*)malloc(sizeof(int) * n);
	if (!arrOne)
	{
		perror("malloc:arrOne");
		return 1;
	}
	arrTwo = (int*)malloc(sizeof(int) * m);
	if (!arrTwo)
	{
		perror("malloc:arrTow");
		return 1;
	}
	arrCombine = (int*)malloc(sizeof(int) * (n + m));
	if (!arrCombine)
	{
		perror("malloc:arrCombine");
		return 1;
	}

	//录入数列n、m
	for (i = 0; i < n; i++)
	{
		scanf("%d", arrOne + i);
	}
	for (j = 0; j < m; j++)
	{
		scanf("%d", arrTwo + j);
	}

	//合并至第3个数列中
	i = 0;
	j = 0;
	for (k = 0; k < n + m; k++)
	{
		//指示 arrOne 已经放完
		if (i == n)
		{
			flag = 1;
			break;
		}
		//指示 arrTow 已经放完
		else if (j == m)
		{
			flag = 2;
			break;
		}

		//把较小的元素放入第3个数列中
		if (*(arrOne + i) < *(arrTwo + j))
		{
			*(arrCombine + k) = *(arrOne + i);
			i++;
		}
		else
		{
			*(arrCombine + k) = *(arrTwo + j);
			j++;
		}
	}

	//处理 arrTwo 中剩余的元素
	if (flag == 1)
	{
		for (; k < n + m; j++, k++)
		{
			*(arrCombine + k) = *(arrTwo + j);
		}
	}
	//处理 arrOne 中剩余的元素
	else if (flag == 2)
	{
		for (; k < n + m; i++, k++)
		{
			*(arrCombine + k) = *(arrOne + i);
		}
	}

	//输出
	for (k = 0; k < n + m; k++)
	{
		printf("%d ", *(arrCombine + k));
	}

	//释放内存
	free(arrOne);
	free(arrTwo);
	free(arrCombine);
	arrOne = NULL;
	arrTwo = NULL;
	arrCombine = NULL;

	return 0;
}

编辑于 2024-03-20 00:02:13 回复(0)
#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m); // 读取两个升序序列的长度

    int a[1000], b[1000];
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]); // 读取第一个升序序列的元素
    }
    for (int i = 0; i < m; i++) {
        scanf("%d", &b[i]); // 读取第二个升序序列的元素
    }

    int ans[2000];
    int i = 0, j = 0, k = 0;
    while (i < n && j < m) {
        if (a[i] < b[j]) {
            ans[k++] = a[i++];
        } else {
            ans[k++] = b[j++];
        }
    }

    while (i < n) {
        ans[k++] = a[i++];
    }
    while (j < m) {
        ans[k++] = b[j++];
    }

    for (int i = 0; i < n + m; i++) {
        printf("%d ", ans[i]); // 输出合并后的有序序列
    }

    return 0;
}

编辑于 2024-02-19 21:45:53 回复(0)
#include <stdio.h>

int main()
{
    int n,m;
    scanf("%d",&n);
    scanf("%d",&m);
    int arr1[1000]={0};
    int arr2[1000]={0};
    for(int i=0;i<n;i++)
    {
        scanf("%d",&arr1[i]);
    }
    for(int i=0;i<m;i++)
    {
        scanf("%d",&arr2[i]);
    }
    int i=0;
    int j=0;
    while(i<n && j<m)
    {
        if(arr1[i]<arr2[j])
        {
            printf("%d ",arr1[i]);i++;
        }
        else
        {
            printf("%d ",arr2[j]);j++;
        }
    }
    while(i<n)
    {
        printf("%d ",arr1[i]);i++;
    }
    while(j<m)
    {
        printf("%d ",arr2[j]);j++;
    }
    return 0;
}
发表于 2024-02-15 13:31:49 回复(0)
#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    int a[n], b[m];
    for(int i=0; i<n; i++){
        scanf("%d", &a[i]);
        //printf("%d ", a[i]);
    }
    for(int i=0; i<m; i++){
        scanf("%d", &b[i]);
        //printf("%d ", b[i]);
    }
    int c[m+n], tag_a=0, tag_b=0;
    for(int i=0; i<m+n; i++){
        if(a[tag_a] <= b[tag_b]){
            c[i] = a[tag_a];
            tag_a++;
        }else{
            c[i] = b[tag_b];
            tag_b++;
        }
        printf("%d ", c[i]);

        if(tag_a > n-1){
            a[tag_a] = 30001;
        }
        if(tag_b > m-1){
            b[tag_b] = 30001;
        }
    }
    return 0;
}
发表于 2024-01-30 17:03:05 回复(0)
#include <stdio.h>
#include <stdlib.h>
int main() {
    int a, b;
    while (scanf("%d %d", &a, &b) != EOF) {
        int* arr1 = (int*)malloc(sizeof(int) * a);
        int* arr2 = (int*)malloc(sizeof(int) * b);
        int* arr3 = (int*)malloc(sizeof(int) * (b + a));
        if (arr1 == NULL || arr2 == NULL || arr3 == NULL) {
            printf("内存分配失败\n");
            return -1;
        }
        int* p1 = arr1;
        int* p2 = arr2;
        int* p3 = arr3;

        for (int i = 0; i < a; i++)
            scanf("%d", (p1++));
        for (int i = 0; i < b; i++)
            scanf("%d", (p2++));

        p1 = arr1; // 重置指针位置
        p2 = arr2; // 重置指针位置

        while (p1 - arr1 < a && p2 - arr2 < b) {
            if (*p1 <= *p2)
                *(p3++) = *(p1++);
            else if (*p1 > *p2)
                *(p3++) = *(p2++);
        }

        while (p1 - arr1 < a)
            *(p3++) = *(p1++);

        while (p2 - arr2 < b)
            *(p3++) = *(p2++);
        p3 = arr3;
        for (int j = 0; j < a + b; j++)
            printf("%d ", *(p3++));
        free(arr1);
        free(arr2);
        free(arr3);
    }
    return 0;
}
编辑于 2024-01-29 11:14:06 回复(0)