1. 程式人生 > >CCF CSP 201409-1 相鄰數對

CCF CSP 201409-1 相鄰數對

www lan sin http algorithm span csp target c++

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

CCF CSP 201409-1 相鄰數對

問題描述

  給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。

輸入格式

  輸入的第一行包含一個整數n,表示給定整數的個數。
  第二行包含所給定的n個整數。

輸出格式

  輸出一個整數,表示值正好相差1的數對的個數。

樣例輸入

6
10 2 6 3 7 8

樣例輸出

3

樣例說明

  值正好相差1的數對包括(2, 3), (6, 7), (7, 8)。

評測用例規模與約定

  1<=n<=1000,給定的整數為不超過10000的非負整數。

解析

首先排序,然後計算相鄰兩個數的差。

代碼

C++

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main() {
    int N;
    cin >> N;
    vector<int> a(N);
    for(int n=0; n<N; n++) {
        cin >> a[n];
    }
    sort(a.begin(), a.end());
    
int cnt = 0; for(int n=0; n<N-1; n++) { if(abs(a[n]-a[n+1])==1) { cnt++; } } cout << cnt; }

CCF CSP 201409-1 相鄰數對