weixin_43866982 2018-11-30 15:51 采纳率: 0%
浏览 1187

2018ACM新生赛(热身赛)

博博的电脑出现了问题,屏幕的某个部分会倒置。博博现在很好奇,如果有 n 个数组成的数列,在博博的电脑看起来是什么样子的呢?
比如说有 n 个数字如1、2、3、4、5,博博的电脑会自动把区间[l ~ r]里面的序列倒置。如果 l 和 r是 2 和 3,那么博博的电脑就会显示1、3、2、4、5。
博博懒得看电脑会把数组变成奇怪的样子,你能直接告诉他大概是什么样子吗?

输入要求
第一行输入一个T(1<=T<=10,000)表示接下来有T组数据
输入的第一行包含三个整数n、 l 和 r (1 ≤ l ≤ r ≤ 1,000, 1 ≤ n ≤ 1,000)
第二行有 n 个数字分别是 a1,a2......an。

输出要求
每次输出占一行,样式为Case #i:+\n+ans+\n(没有加号),ans 为变化后的数组。

测试数据
输入示例
1
5 2 3
1 2 3 4 5
输出示例
Case #1:
1 3 2 4 5

小贴士
博博是嘤嘤怪,数组最后没有空格哦~~~~~~~~~(´。• ᵕ •。`) ♡

  • 写回答

1条回答 默认 最新

  • qq_42067972 2018-11-30 16:32
    关注

    代码写的不行,凑合试试吧

    #include <stdio.h>
    
    int num[1000];
    int buf[1000];
    int buf_num;
    int T,t=0;
    int n,l,r;
    
    void func()
    {
        int i,ok=0;
        for(i=0;i<n;i++)
        {
            if(ok==0)//普通模式-正序 
            {
                if(num[i]!=l)
                {
                    printf("%d",num[i]);
                    if(i!=n-1)
                    printf(" ");
                }
                else
                {
                    ok=1;
                    buf[buf_num]=num[i];
                    buf_num++;
                }
            }
            else//特殊模式-倒序 
            {
                if(num[i]!=r)
                {
                    buf[buf_num]=num[i];
                    buf_num++;
                }
                else
                {
                    ok=0;
                    buf[buf_num]=num[i];
                    buf_num++;
                    int j;
                    for(j=buf_num-1;j>=0;j--)
                    {
                        printf("%d",buf[j]);
                        if(i!=n-1 || j!=0)
                        printf(" ");
                    }
                }
            }
        }
        return;
    }
    
    int main()
    {   
        scanf("%d",&T);
        while(t<T)
        {
            buf_num=0;
            scanf("%d %d %d",&n,&l,&r);
            int i;
            for(i=0;i<n;i++)
            {
                scanf("%d",&num[i]);
            }
            t++;
            printf("Case #%d:\n",t);
            func();
            printf("\n");
        }
        return 0;
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)