Submission

Status:
[PPP][PPPP][PPP][PPPPPPP]

Score: 100

User: Whally

Problemset: ขั้นบันได

Language: cpp

Time: 1.226 second

Submitted On: 2025-04-14 14:10:47

#include <bits/stdc++.h>
using namespace std;
int h[50010], hu[100010], go[100010];
int main()
{
    cin.tie(0)->sync_with_stdio(0);
    int n,q,mx = -1e9;
    cin >> n;
    for (int i = 0; i < n ;i++){
        cin >> h[i];
        if (i){
            int l = h[i-1];
            int r = h[i];
            if (r < l) swap(l,r);
            for (int i = l+1; i < r; i++){
                if (i%2) hu[i]++;
                else go[i]++;
            }
        }
    }
    for (int i = 1; i <= 100000; i++){
        hu[i] += hu[i-1];
        go[i] += go[i-1];
    }
    cin >> q;
    while (q--){
        int l,r; cin >> l >> r;
        cout << go[r] - go[l-1] << " " << hu[r] - hu[l-1] << "\n";
    }

    return 0;
}