結果

問題 No.905 Sorted?
ユーザー rxoxixyxd
提出日時 2019-10-11 22:41:46
言語 C++14
(gcc 9.2.0)
結果
AC  
実行時間 344 ms
コード長 1,454 Byte
コンパイル時間 1,496 ms
使用メモリ 5,228 KB
最終ジャッジ日時 2020-01-11 19:32:30

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
01.txt AC 4 ms
3,116 KB
02.txt AC 4 ms
3,200 KB
03.txt AC 4 ms
3,112 KB
04.txt AC 4 ms
3,272 KB
05.txt AC 4 ms
3,264 KB
06.txt AC 8 ms
3,312 KB
07.txt AC 4 ms
3,200 KB
08.txt AC 8 ms
3,388 KB
09.txt AC 272 ms
3,816 KB
10.txt AC 168 ms
3,788 KB
11.txt AC 276 ms
4,912 KB
12.txt AC 264 ms
4,708 KB
13.txt AC 316 ms
4,424 KB
14.txt AC 320 ms
5,140 KB
15.txt AC 344 ms
5,184 KB
16.txt AC 292 ms
5,228 KB
17.txt AC 320 ms
5,152 KB
18.txt AC 324 ms
5,100 KB
19.txt AC 232 ms
5,192 KB
20.txt AC 4 ms
3,176 KB
s1.txt AC 0 ms
3,268 KB
s2.txt AC 0 ms
3,260 KB
s3.txt AC 0 ms
3,104 KB
テストケース一括ダウンロード

ソースコード

diff #
#include <bits/stdc++.h>
#define rep(i,n) for (int i = 0; i < n; ++i)
#define ALL(c) (c).begin(), (c).end()
#define SUM(x) std::accumulate(ALL(x), 0LL)
#define MIN(v) *std::min_element(v.begin(), v.end())
#define MAX(v) *std::max_element(v.begin(), v.end())
#define EXIST(v, x) (std::find(v.begin(), v.end(), x) != v.end())
using namespace std;

typedef long long ll;

template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }
const int INF = 1e9;
const long long INFL = 1LL<<60;

int main()
{
  int n;
  cin >> n;
  vector<ll> a(n);
  rep(i, n) {
    cin >> a[i];
  }
  vector<ll> inc(n);
  vector<ll> dec(n);
  int lastInc = 0;
  int lastDec = 0;
  rep(i, n-1) {
    if (a[i] > a[i+1]) {
      for (int j = lastInc; j <= i; j++) {
        inc[j] = i;
        lastInc = i+1;
      }
    }
    if (a[i] < a[i+1]) {
      for (int j = lastDec; j<= i; j++) {
        dec[j] = i;
        lastDec = i+1;
      }
    }
  }
  for (int j = lastInc; j < n; j++) {
    inc[j] = n-1;
  }
  for (int j = lastDec; j < n; j++) {
    dec[j] = n-1;
  }

  int q;
  cin >> q;
  rep(i, q) {
    int l, r;
    cin >> l >> r;
    if (r <= inc[l]) {
      cout << 1;
    } else {
      cout << 0;
    }
    cout << " ";
    if (r <= dec[l]) {
      cout << 1;
    } else {
      cout << 0;
    }
    cout << endl;
  }
  return 0;
}
0