Cod sursa(job #467411)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 28 iunie 2010 20:10:41
Problema Numarare Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <algorithm>
#include <cassert>
#include <cctype>
#include <cmath>
#include <cstring>
#include <ctime>
#include <bitset>
#include <deque>
#include <fstream>
#include <list>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>

using namespace std;

typedef bool int01;
typedef char cha08;
typedef short int int16;
typedef int int32;
typedef float rea32;
typedef long long int int64;
typedef double rea64;

const cha08 Input[] = "numarare.in";
const cha08 Output[] = "numarare.out";

const int32 Dim = 100001;

int32 N;
int32 a[Dim];
int64 XXX;
int64 k[Dim];

int32 main() {

    ifstream fin( Input );
    ofstream fout( Output );

    int32 i, r, cnt;

    fin >> N;
    for( i = 1; i <= N; ++i )
        fin >> a[i];

    for( k[1] = 0, i = 2; i <= N; ++i )
        k[i] = k[i - 1] + i / 2;

    for( i = 1; i <= N; ++i ) {

        if( i < N )
            r = a[i + 1] - a[i];
        else
            continue;

        for( cnt = 1; a[i + 1] - a[i] == r && i < N; ++i, ++cnt );
        XXX += k[cnt];
        --i;
    }

    fout << XXX;

    fin.close();
    fout.close();

    return 0;
}