1 solutions

  • 0
    @ 2025-11-5 20:05:56

    C++ :

    #include<cstdio>
    const int N=100010;
    int h[N]={0};
    int main()
    {
        int n,i,a,b,c,ans=2;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        scanf("%d",&h[i]);
        for(i=2;i<n;i++)
          {if(h[i-1]<h[i]&&h[i]>h[i+1])ans++;
          if(h[i-1]>h[i]&&h[i]<h[i+1])ans++;
          if(h[i]==h[i+1])h[i]=h[i-1];}
        printf("%d",ans);
        return 0;
    }
    

    Pascal :

    const maxhigh:longint=1000001;
    var h:array[1..100001]of longint;i,n,ans:longint;
    begin
     readln(n);
     for i:=1 to n do read(h[i]);
     readln;
     close(input);
     h[n+1]:=maxhigh;
     i:=1;
     if h[i]>h[i+1] then begin while h[i]>h[i+1] do inc(i);ans:=2 end else ans:=1;
     while i<n do
      begin
       while (h[i]<h[i+1])or(h[i]=h[i+1]) do inc(i);
       inc(ans);
       if i<n then
        begin
         while (h[i]>h[i+1])or(h[i]=h[i+1]) do inc(i);
         inc(ans)
        end
      end;
     writeln(ans)
    end.
    
    • 1

    Information

    ID
    20002
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By