CCP-CSP認證考試 201509-1 數列分段 c/c++題解

題目描述

試題編號: 201509-1
試題名稱: 數列分段
時間限制: 1.0s
內存限制: 256.0MB
問題描述:
問題描述
  給定一個整數數列,數列中連續相同的最長整數序列算成一段,問數列中共有多少段?
輸入格式
  輸入的第一行包含一個整數n,表示數列中整數的個數。
  第二行包含n個整數a1, a2, …, an,表示給定的數列,相鄰的整數之間用一個空格分隔。
輸出格式
  輸出一個整數,表示給定的數列有多個段。
樣例輸入
8
8 8 8 0 12 12 8 0
樣例輸出
5
樣例說明
  8 8 8是第一段,0是第二段,12 12是第三段,倒數第二個整數8是第四段,最後一個0是第五段。
評測用例規模與約定
  1 ≤ n ≤ 1000,0 ≤ ai ≤ 1000。

代碼:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <deque>
#include <list>
#include <utility>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <bitset>
#include <iterator>
using namespace std;

typedef long long ll;
const int inf = 0x3f3f3f3f;
const ll  INF = 0x3f3f3f3f3f3f3f3f;
const double PI = acos(-1.0);
const double E = exp(1.0);
const int MOD = 1e9+7;
const int MAX = 1e3+5;
int n,a;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    while(cin >> n)
    {
        int sum = 0;
        int last = -1;
        for(int i = 0; i < n; i++)
        {
            cin >> a;
            if(a != last)
            {
                sum++;
            }
            last = a;
        }
        cout << sum << endl;
    }

    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章