結果
| 問題 | No.905 Sorted? | 
| コンテスト | |
| ユーザー |  Konton7 | 
| 提出日時 | 2020-01-17 15:03:47 | 
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 254 ms / 2,000 ms | 
| コード長 | 1,116 bytes | 
| コンパイル時間 | 2,178 ms | 
| コンパイル使用メモリ | 194,084 KB | 
| 最終ジャッジ日時 | 2025-01-08 18:11:22 | 
| ジャッジサーバーID (参考情報) | judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 23 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
// #define DEBUG
int main()
{
#ifdef DEBUG
    cout << "DEBUG MODE" << endl;
    ifstream in("input.txt"); //for debug
    cin.rdbuf(in.rdbuf());    //for debug
#endif
    int n, q, s1, s2, l, r;
    cin >> n;
    ll a[n];
    bool lt[n-1], gt[n-1];
    int lt_acum[n], gt_acum[n];
    s1 = s2 = lt_acum[0] = gt_acum[0] = 0;
    for (int i = 0; i < n; i++)
        cin >> a[i];
    for (int i = 0; i < n-1; i++){
        lt[i] = a[i+1] <= a[i];
        s1 += lt[i];
        lt_acum[i+1] = s1;
        gt[i] = a[i+1] >= a[i];
        s2 += gt[i];
        gt_acum[i+1] = s2;
    }
    // for (int i = 0; i < n; i++)
    // {
    //     cout << gt_acum[i] << " ";
    // }
    // cout << endl;
    // for (int i = 0; i < n; i++)
    // {
    //     cout << lt_acum[i] << " ";
    // }
    // cout << endl;
    cin >> q;
    for (int i = 0; i < q; i++){
        cin >> l >> r;
        cout << ( (gt_acum[r] - gt_acum[l] == r - l) ? 1 : 0 ) << " ";
        cout << ( (lt_acum[r] - lt_acum[l] == r - l) ? 1 : 0 ) << "\n";
    }
    return 0;
}
            
            
            
        