hihoCoder太阁最新面经算法竞赛12 register

Ended

Participants:164

Verdict:Accepted
Score:100 / 100
Submitted:2016-10-25 19:46:21

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <algorithm>
using namespace std;
int arr[100000];
int ass[100000];
int main()
{
    int N, begin, end;
    cin >> N;
    for (int i = 0; i < N; i++) cin >> arr[i];
    ass[0] = arr[0];
    for (int i = 1; i < N; i++)
        ass[i] = max(ass[i - 1], arr[i]);
    end = N - 1;
    while (ass[end] == arr[end]) end--;
    ass[N - 1] = arr[N - 1];
    for (int i = N - 2; i >= 0; i--)
        ass[i] = min(ass[i + 1], arr[i]);
    begin = 0;
    while (ass[begin] == arr[begin]) begin++;
    cout << end - begin + 1 << endl;
    return 0;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX