CCF CSP 201604-1 折點計數

CCF計算機職業資格認證考試題解系列文章爲meelo原創,請務必以連接形式註明本文地址html

CCF CSP 201604-1 折點計數

問題描述

  給定 n個整數表示一個商店連續 n天的銷售量。若是某天以前銷售量在增加,然後一天銷售量減小,則稱這一天爲折點,反過來若是以前銷售量減小然後一天銷售量增加,也稱這一天爲折點。其餘的天都不是折點。以下圖中,第3天和第6天是折點。

  給定 n個整數 a 1a 2, …,  an表示銷售量,請計算出這些天總共有多少個折點。
  爲了減小歧義,咱們給定的數據保證:在這 n天中相鄰兩天的銷售量老是不一樣的,即 ai -1ai。注意,若是兩天不相鄰,銷售量可能相同。

輸入格式

  輸入的第一行包含一個整數 n
  第二行包含 n個整數,用空格分隔,分別表示 a 1a 2, …,  an

輸出格式

  輸出一個整數,表示折點出現的數量。

樣例輸入

7
5 4 1 2 3 6 4

樣例輸出

2

評測用例規模與約定

  全部評測用例知足:1 ≤  n ≤ 1000,天天的銷售量是不超過10000的非負整數。

解析

保存連續的三個值,能夠不須要把數組所有保存起來。數組

代碼

C++spa

#include <cstdio>

int main() {
    int N;
    scanf("%d", &N);
    if(N < 3) {
        printf("%d", 0);
        return 0;
    }
    int cnt = 0;
    int pre, cur, next;
    scanf("%d", &pre);
    scanf("%d", &cur);
    for(int n=2; n<N; n++) {
        scanf("%d", &next);
        if(cur > pre && cur > next) cnt++;
        else if(cur < pre && cur < next) cnt++;
        pre = cur;
        cur = next;
    }
    printf("%d", cnt);
}
相關文章
相關標籤/搜索