• 1-6-07:有趣的跳跃


    描述

    一个长度为n(n>0)的序列中存在“有趣的跳跃”当前仅当相邻元素的差的绝对值经过排序后正好是从1到(n-1)。例如,1 4 2 3存在“有趣的跳跃”,因为差的绝对值分别为3,2,1。当然,任何只包含单个元素的序列一定存在“有趣的跳跃”。你需要写一个程序判定给定序列是否存在 “有趣的跳跃”。

    输入
    一行,第一个数是n(0 < n < 3000),为序列长度,接下来有n个整数,依次为序列中各元素,各元素的绝对值均不超过1,000,000,000。
    输出
    一行,若该序列存在“有趣的跳跃”,输出"Jolly",否则输出"Not jolly"。
    样例输入
    4 1 4 2 3
    
    样例输出
    Jolly
     1 #include<stdio.h>
     2 int c[3000]={0};
     3 int max(int a,int b)
     4 {
     5     return (a>b)?(a-b):(b-a);
     6 }
     7 void poi (int l,int r)
     8 {
     9     if (r<=l)
    10         return ;
    11     int l1,r1,temp,mid;
    12     l1=l;r1=r;mid=c[l];
    13     while (l1!=r1)
    14     {
    15         if (c[r1]<mid)
    16             if (c[l1]>mid)
    17             {
    18                 temp=c[l1];
    19                 c[l1]=c[r1];
    20                 c[r1]=temp;
    21             }
    22             else
    23                 l1++;
    24         else 
    25             r1--;
    26     }
    27     temp=c[l];
    28     c[l]=c[r1];
    29     c[r1]=temp;
    30     poi (l,r1-1);
    31     poi (r1+1,r);
    32 }
    33 int main()
    34 {
    35     int a[3001]={0};
    36     int n,i,x=1;
    37     scanf("%d",&n);
    38     for(i=1;i<=n;i++)
    39         scanf("%d",&a[i]);
    40     for(i=1;i<=n-1;i++)
    41     {
    42         c[i]=max(a[i],a[i-1]);
    43     }
    44     poi(1,n-1);
    45     for(i=1;i<=n-1;i++)
    46         if(c[i]!=i)
    47         {
    48             x=0;
    49             break;
    50         }
    51     if(n<=2)    x=1;
    52     if(x==1)    printf("Jolly
    ");
    53     else            printf("Not jolly
    ");
    54     return 0;
    55 }
  • 相关阅读:
    [洛谷P2824][题解][HEOI2016/TJOI2016]排序
    [整理]CSP-S2019第一轮试题解析
    [整理]Luogu CSP2020第一轮模拟赛
    [洛谷P4395][题解][BOI2003]Gem 气垫车
    [洛谷P5322][BJOI2019][题解]排兵布阵
    [整理]U S A C O 代 码 小 合 集
    第02组Alpha冲刺 总结
    第02组 Alpha冲刺 (6/6)
    第02组 Alpha冲刺 (5/6)
    第02组 Alpha冲刺 (4/6)
  • 原文地址:https://www.cnblogs.com/qianxuejin/p/5455825.html
Copyright © 2020-2023  润新知