結果

問題 No.905 Sorted?
ユーザー crom
提出日時 2019-10-11 22:26:45
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 44 ms
コード長 2,995 Byte
コンパイル時間 1,660 ms
使用メモリ 4,800 KB
最終ジャッジ日時 2020-01-11 19:20:58

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
01.txt AC 4 ms
3,352 KB
02.txt AC 0 ms
3,436 KB
03.txt AC 4 ms
3,312 KB
04.txt AC 0 ms
3,428 KB
05.txt AC 0 ms
3,352 KB
06.txt AC 4 ms
3,340 KB
07.txt AC 0 ms
3,412 KB
08.txt AC 4 ms
3,504 KB
09.txt AC 36 ms
3,904 KB
10.txt AC 24 ms
3,824 KB
11.txt AC 32 ms
4,428 KB
12.txt AC 32 ms
4,140 KB
13.txt AC 36 ms
4,208 KB
14.txt AC 40 ms
4,608 KB
15.txt AC 44 ms
4,712 KB
16.txt AC 36 ms
4,704 KB
17.txt AC 40 ms
4,800 KB
18.txt AC 36 ms
4,656 KB
19.txt AC 32 ms
4,684 KB
20.txt AC 0 ms
3,356 KB
s1.txt AC 4 ms
3,340 KB
s2.txt AC 0 ms
3,360 KB
s3.txt AC 0 ms
3,400 KB
テストケース一括ダウンロード

ソースコード

diff #
#include <cctype>
#include <cfloat>
#include <climits>
#include <cmath>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>

#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <ios>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <valarray>
#include <vector>

#if __cplusplus >= 201103L
#include <array>
#include <forward_list>
#include <random>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <unordered_map>
#include <unordered_set>
#endif

#define F first
#define S second
#define MP make_pair
#define pb push_back
#define all(a) a.begin(), a.end()
#define lcm( a, b ) (a)/__gcd((a),(b))*(b)
#define endl '\n'

using namespace std;

typedef long long LL;
typedef pair< int, int > P;
typedef pair< LL, LL > LP;
typedef pair< int, P > iP;
typedef pair< P, P > PP;

static const int INF = INT_MAX;
static const LL LINF = LLONG_MAX;
static const int MIN = INT_MIN;
static const LL LMIN = LLONG_MIN;
static const int MOD = 1000000007;
static const int SIZE = 100005;

const int dx[] = {0, -1, 1, 0};
const int dy[] = {-1, 0, 0, 1};

vector< int > Div( int n ) {
    vector< int > ret;
    for( int i = 1; i * i <= n; ++i ) {
        if( n % i == 0 ) {
            ret.pb( i );

            if( i * i != n ) ret.pb( n / i );
        }
    }
    sort( all( ret ) );
    return ret;
}

int up[SIZE], down[SIZE];

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

    int n;
    cin >> n;
    vector< LL > v;
    for( int i = 0; i < n; ++i ) {
        LL a;
        cin >> a;
        v.pb( a );

    }

    for( int i = 1; i < v.size(); ++i ) {
        if( v[i] <= v[i - 1] ) {
            down[i] = 1;

        }
        if( v[i] >= v[i - 1] ) {
            up[i] = 1;

        }

    }

    for( int i = 1; i < v.size(); ++i ) {
        up[i] += up[i - 1];
        down[i] += down[i - 1];

    }

    int q;
    cin >> q;
    for( int i = 0; i < q; ++i ) {
        int l, r;
        cin >> l >> r;
        if( r == l ) {
            cout << 1 << " " << 1 << endl;
            continue;

        }
        int up_sum = up[r] - up[l];
        int down_sum = down[r] - down[l];
        int length = r - l;
        if( up_sum == length ) {
            if( down_sum == length ) {
                cout << 1 << " " << 1 << endl;

            } else {
                cout << 1 << " " << 0 << endl;

            }
        } else {
            if( down_sum == length ) {
                cout << 0 << " " << 1 << endl;

            } else {
                cout << 0 << " " << 0 << endl;

            }
        }
    }
    return 0;
}

0