Submission details
Task:Sort
Sender:Valters07
Submission time:2026-04-17 13:56:54 +0300
Language:C++ (C++17)
Status:READY
Result:18
Feedback
subtaskverdictscore
#1ACCEPTED6
#2ACCEPTED5
#3ACCEPTED7
#40
#50
#60
#70
Test results
testverdicttimesubtask
#1ACCEPTED0.02 s2, 6, 7details
#2ACCEPTED0.02 s1, 2, 3, 6, 7details
#3ACCEPTED0.02 s2, 6, 7details
#4ACCEPTED0.02 s1, 2, 3, 6, 7details
#5ACCEPTED0.02 s1, 2, 3, 6, 7details
#6ACCEPTED0.02 s1, 2, 3, 6, 7details
#7ACCEPTED0.02 s1, 2, 3, 6, 7details
#8ACCEPTED0.02 s1, 2, 3, 6, 7details
#9ACCEPTED0.02 s1, 2, 3, 6, 7details
#10ACCEPTED0.02 s1, 2, 3, 6, 7details
#11ACCEPTED0.02 s2, 6, 7details
#12ACCEPTED0.02 s2, 6, 7details
#13ACCEPTED0.02 s2, 6, 7details
#14ACCEPTED0.02 s2, 6, 7details
#15ACCEPTED0.02 s2, 6, 7details
#16ACCEPTED0.67 s3, 7details
#17ACCEPTED0.61 s3, 7details
#18ACCEPTED0.69 s3, 7details
#19ACCEPTED0.55 s3, 7details
#20ACCEPTED0.60 s3, 7details
#21ACCEPTED0.55 s3, 7details
#22ACCEPTED0.60 s3, 7details
#23ACCEPTED0.18 s3, 7details
#240.57 s4, 7details
#250.49 s4, 7details
#260.60 s4, 7details
#27ACCEPTED0.18 s4, 7details
#28ACCEPTED0.67 s4, 7details
#29ACCEPTED0.51 s4, 7details
#300.03 s5, 6, 7details
#310.03 s5, 6, 7details
#32ACCEPTED0.03 s5, 6, 7details
#330.03 s5, 6, 7details
#34ACCEPTED0.02 s5, 6, 7details
#350.03 s5, 6, 7details
#360.03 s6, 7details
#370.03 s6, 7details
#380.03 s6, 7details
#390.03 s6, 7details
#40ACCEPTED0.02 s6, 7details
#410.03 s6, 7details
#420.57 s7details
#430.56 s7details
#440.55 s7details
#450.76 s7details
#460.84 s7details
#470.85 s7details
#480.85 s7details
#49ACCEPTED0.19 s7details
#500.74 s7details
#510.56 s7details
#52ACCEPTED0.02 s1, 2, 3, 5, 6, 7details
#53ACCEPTED0.02 s1, 2, 3, 4, 5, 6, 7details
#54ACCEPTED0.02 s2, 5, 6, 7details
#55ACCEPTED0.02 s1, 2, 3, 4, 6, 7details
#56ACCEPTED0.02 s1, 2, 3, 6, 7details
#570.02 s6, 7details
#58ACCEPTED0.06 s3, 4, 7details
#59ACCEPTED0.06 s3, 7details
#60ACCEPTED0.02 s2, 6, 7details
#61ACCEPTED0.02 s2, 6, 7details
#62ACCEPTED0.02 s2, 6, 7details
#63ACCEPTED0.02 s2, 6, 7details
#64ACCEPTED0.02 s2, 6, 7details

Compiler report

input/code.cpp: In function 'void init(int, int, int)':
input/code.cpp:28:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |         while(it1 < v1.size() || it2 < v2.size())
      |               ~~~~^~~~~~~~~~~
input/code.cpp:28:38: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |         while(it1 < v1.size() || it2 < v2.size())
      |                                  ~~~~^~~~~~~~~~~
input/code.cpp:30:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |             if(it1 >= v1.size())
      |                ~~~~^~~~~~~~~~~~
input/code.cpp:32:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {ak...

Code

#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
#define fio ios_base::sync_with_stdio(0);cin.tie(0);
#define ll long long
#define ld long double
#define en exit(0);
#define pb push_back
#define fi first
#define se second
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int N = 2e5 + 5;
vector<int> segt[4 * N];
int rr[N];
int a[N], n;
void init(int l = 1, int r = n, int pos = 1)
{
    if(l == r)
        segt[pos].pb(a[l]);
    else
    {
        int mid = (l + r) / 2;
        init(l, mid, pos * 2);
        init(mid + 1, r, pos * 2 + 1);
        int it1 = 0, it2 = 0;
        vector<int> &v1 = segt[pos * 2], &v2 = segt[pos * 2 + 1];
        while(it1 < v1.size() || it2 < v2.size())
        {
            if(it1 >= v1.size())
                segt[pos].pb(v2[it2++]);
            else if(it2 >= v2.size())
                segt[pos].pb(v1[it1++]);
            else if(v2[it2] < v1[it1])
                segt[pos].pb(v2[it2++]);
            else
                segt[pos].pb(v1[it1++]);
        }
    }
}
int get_val(int lb, int rb, int x, int l = 1, int r = n, int pos = 1)
{
    if(rb < l || r < lb)
        return 0;
    if(lb <= l && r <= rb)
    {
        int l_ = 0, r_ = segt[pos].size() - 1;
        if(x > 0)
        {
            while(l_ < r_)
            {
                int mid_ = (l_ + r_) / 2;
                if(segt[pos][mid_] >= x)
                    r_ = mid_;
                else
                    l_ = mid_ + 1;
            }
            if(segt[pos][l_] < x)
                return 0;
            return segt[pos].size() - l_;
        }
        else
        {
            while(l_ < r_)
            {
                int mid_ = (l_ + r_ + 1) / 2;
                if(segt[pos][mid_] <= -x)
                    l_ = mid_;
                else
                    r_ = mid_ - 1;
            }
            if(segt[pos][l_] > -x)
                return 0;
            return l_ + 1;
        }
    }
    else
    {
        int mid = (l + r) / 2;
        int lh = get_val(lb, rb, x, l, mid, pos * 2);
        int rh = get_val(lb, rb, x, mid + 1, r, pos * 2 + 1);
        return lh + rh;
    }
}
int dvv(int a, int b)
{
    return (a + b - 1) / b;
}
int main()
{
    fio
//    ifstream cin("in.in");
    int q;
    cin >> n >> q;
    vector<pair<int,int> > reind;
    for(int i = 1;i <= n;i++)
    {
        cin >> a[i];
        reind.pb({a[i], i});
    }
    sort(reind.begin(), reind.end());
    for(int i = 0;i < n;i++)
        a[reind[i].se] = i + 1;
    init();
    rr[n + 1] = -1;
    for(int i = n;i >= 1;i--)
    {
        if(a[i] != i)
            rr[i] = -1;
        else if(rr[i + 1] != -1)
            rr[i] = rr[i + 1];
        else
            rr[i] = i;
    }
    for(int i = 0;i < q;i++)
    {
        int a, b;
        cin >> a >> b;
        if(rr[1] == n)
        {
            cout << "0\n";
            continue;
        }
        b = n - b + 1;
        if(a < b)
        {
            int l = a, r = b;
            int lh = get_val(1, l, -l);
            int rh = get_val(r, n, r);
            if((l > 1 && lh != l) || (r < n && rh != n - r + 1) || (l + 1 < r && rr[l + 1] < r - 1))
            {
                cout << "-1\n";
                continue;
            }
            int op = 0;
            op += (rr[1] < a);
            op += (rr[r] < n);
            cout << op << "\n";
        }
        else
        {
            int d = a - b + 1;
            int l = b, r = a;
            int x = get_val(1, l - 1, r + 1);
            int y = get_val(r + 1, n, -(l - 1));
            if(x == 0 && y == 0)
            {
                if((l == 1 || rr[1] >= l - 1) || (r == n || rr[r + 1] == n))
                    cout << 1;
                else
                    cout << 2;
                cout << "\n";
            }
            else
            {
                int opx = dvv(x, d), opy = dvv(y, d);
                int op = max(opx, opy);
                cout << op * 2 + (opx == opy) << "\n";
            }
        }
    }
    return 0;
}

Test details

Test 1

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
6 3
3 1 4 1 5 9
4 1
3 3
2 5

correct output
1
-1
2

user output
1
-1
2

Test 2

Subtask: 1, 2, 3, 6, 7

Verdict: ACCEPTED

input
2 1
548813503 548813503
1 1

correct output
0

user output
0

Test 3

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
1 1
417021999
1 1

correct output
0

user output
0

Test 4

Subtask: 1, 2, 3, 6, 7

Verdict: ACCEPTED

input
10 10
20751947 20751947 20751947 494...

correct output
-1
-1
1
1
-1
...

user output
-1
-1
1
1
-1
...

Test 5

Subtask: 1, 2, 3, 6, 7

Verdict: ACCEPTED

input
10 10
12780811 19475241 19475241 683...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 6

Subtask: 1, 2, 3, 6, 7

Verdict: ACCEPTED

input
10 10
14574963 14574963 14574963 864...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 7

Subtask: 1, 2, 3, 6, 7

Verdict: ACCEPTED

input
10 10
237541216 237541216 35036522 6...

correct output
-1
-1
-1
2
-1
...

user output
-1
-1
-1
2
-1
...

Test 8

Subtask: 1, 2, 3, 6, 7

Verdict: ACCEPTED

input
10 10
319425549 513116712 539199939 ...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 9

Subtask: 1, 2, 3, 6, 7

Verdict: ACCEPTED

input
10 10
54363219 54363219 110986323 11...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 10

Subtask: 1, 2, 3, 6, 7

Verdict: ACCEPTED

input
10 5
55687086 550701455 326656159 5...

correct output
-1
-1
-1
-1
-1

user output
-1
-1
-1
-1
-1

Test 11

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
10 10
35889584 588130796 815837475 8...

correct output
-1
-1
1
1
1
...

user output
-1
-1
1
1
1
...

Test 12

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
10 10
679842175 48724877 720966351 6...

correct output
2
3
2
1
1
...

user output
2
3
2
1
1
...

Test 13

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
10 10
893310183 811950921 338863962 ...

correct output
2
1
1
2
5
...

user output
2
1
1
2
5
...

Test 14

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
10 10
221045363 282395847 441913686 ...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 15

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
10 10
509019662 983949268 960017302 ...

correct output
3
-1
3
3
3
...

user output
3
-1
3
3
3
...

Test 16

Subtask: 3, 7

Verdict: ACCEPTED

input
200000 200000
2277053 2277053 2277053 227705...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 17

Subtask: 3, 7

Verdict: ACCEPTED

input
200000 200000
6767 16596 16596 27202 37272 4...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 18

Subtask: 3, 7

Verdict: ACCEPTED

input
200000 200000
5393 5910 9099 15755 15755 164...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 19

Subtask: 3, 7

Verdict: ACCEPTED

input
200000 200000
3779 4629 8999 10468 22605 227...

correct output
-1
1
2
-1
-1
...

user output
-1
1
2
-1
-1
...

Test 20

Subtask: 3, 7

Verdict: ACCEPTED

input
200000 200000
878 2791 10849 11861 13405 239...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 21

Subtask: 3, 7

Verdict: ACCEPTED

input
200000 200000
430 1479 1992 2829 7152 14093 ...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 22

Subtask: 3, 7

Verdict: ACCEPTED

input
199997 200000
2733 10526 13882 14035 14689 3...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 23

Subtask: 3, 7

Verdict: ACCEPTED

input
200000 200000
12345 13538 15407 18490 18984 ...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 24

Subtask: 4, 7

Verdict:

input
200000 200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
-1
1
-1
-1
-1
...

user output
-1
1
-1
-1
-1
...

Feedback: Incorrect character on line 507 col 1: expected "4", got "3"

Test 25

Subtask: 4, 7

Verdict:

input
200000 200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1
-1
1
-1
1
...

user output
1
-1
1
-1
1
...

Feedback: Incorrect character on line 34850 col 1: expected "4", got "3"

Test 26

Subtask: 4, 7

Verdict:

input
200000 200000
2 2 1 1 2 1 2 1 2 2 2 1 1 1 2 ...

correct output
4
3
2
2
6
...

user output
4
3
2
2
6
...

Feedback: Incorrect character on line 85 col 1: expected "4", got "3"

Test 27

Subtask: 4, 7

Verdict: ACCEPTED

input
200000 200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 28

Subtask: 4, 7

Verdict: ACCEPTED

input
200000 200000
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

correct output
8513
1099
35939
9299
19597
...

user output
8513
1099
35939
9299
19597
...

Test 29

Subtask: 4, 7

Verdict: ACCEPTED

input
200000 200000
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

correct output
178345
169257
62115
96143
64796
...

user output
178345
169257
62115
96143
64796
...

Test 30

Subtask: 5, 6, 7

Verdict:

input
5000 5000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
1
1
-1
1
-1
...

user output
1
1
-1
1
-1
...

Feedback: Incorrect character on line 486 col 1: expected "6", got "5"

Test 31

Subtask: 5, 6, 7

Verdict:

input
5000 5000
1 2 3 4 5 6 7 8 9 72 145 47 19...

correct output
-1
2
-1
2
-1
...

user output
-1
2
-1
2
-1
...

Feedback: Incorrect character on line 757 col 1: expected "4", got "3"

Test 32

Subtask: 5, 6, 7

Verdict: ACCEPTED

input
4999 5000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
-1
2
-1
-1
-1
...

user output
-1
2
-1
-1
-1
...

Test 33

Subtask: 5, 6, 7

Verdict:

input
5000 5000
4033 4368 3086 3208 4313 388 8...

correct output
3
3
3
3
11
...

user output
3
3
3
3
11
...

Feedback: Incorrect character on line 16 col 2: expected "24", got "23"

Test 34

Subtask: 5, 6, 7

Verdict: ACCEPTED

input
5000 5000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 35

Subtask: 5, 6, 7

Verdict:

input
5000 5000
5000 4999 4998 4997 4996 4995 ...

correct output
2039
1910
-1
687
673
...

user output
2039
1910
-1
687
673
...

Feedback: Incorrect character on line 59 col 4: expected "1574", got "1573"

Test 36

Subtask: 6, 7

Verdict:

input
5000 5000
202010 457852 826471 926337 10...

correct output
-1
-1
2
-1
-1
...

user output
-1
-1
2
-1
-1
...

Feedback: Incorrect character on line 17 col 1: expected "4", got "3"

Test 37

Subtask: 6, 7

Verdict:

input
5000 5000
190583 326486 431922 462939 72...

correct output
-1
-1
-1
-1
2
...

user output
-1
-1
-1
-1
2
...

Feedback: Incorrect character on line 704 col 1: expected "4", got "3"

Test 38

Subtask: 6, 7

Verdict:

input
5000 5000
821998255 400550008 71790232 5...

correct output
5
3
3
2
5
...

user output
5
3
3
2
5
...

Feedback: Incorrect character on line 8 col 1: expected "4", got "3"

Test 39

Subtask: 6, 7

Verdict:

input
5000 5000
266174928 446601941 191252234 ...

correct output
3
3
414
4
3
...

user output
3
3
414
3
3
...

Feedback: Incorrect character on line 4 col 1: expected "4", got "3"

Test 40

Subtask: 6, 7

Verdict: ACCEPTED

input
5000 5000
11621 243915 243915 949123 137...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 41

Subtask: 6, 7

Verdict:

input
5000 5000
999767052 998555066 997822810 ...

correct output
919
459
505
833
809
...

user output
919
459
505
833
809
...

Feedback: Incorrect character on line 292 col 4: expected "1006", got "1005"

Test 42

Subtask: 7

Verdict:

input
200000 200000
478025 478025 478025 478025 47...

correct output
-1
-1
2
2
2
...

user output
-1
-1
2
2
2
...

Feedback: Incorrect character on line 233 col 1: expected "4", got "3"

Test 43

Subtask: 7

Verdict:

input
200000 200000
1810 2088 3022 3097 7459 7943 ...

correct output
2
-1
-1
2
-1
...

user output
2
-1
-1
2
-1
...

Feedback: Incorrect character on line 464 col 1: expected "6", got "5"

Test 44

Subtask: 7

Verdict:

input
199531 200000
11328 26391 30353 37063 44412 ...

correct output
-1
2
-1
2
2
...

user output
-1
2
-1
2
2
...

Feedback: Incorrect character on line 8539 col 1: expected "6", got "5"

Test 45

Subtask: 7

Verdict:

input
200000 200000
106738201 369187074 412614650 ...

correct output
2
12
3
19
3
...

user output
2
12
3
19
3
...

Feedback: Incorrect character on line 6 col 1: expected "6", got "5"

Test 46

Subtask: 7

Verdict:

input
200000 200000
670611290 43427363 8475380 309...

correct output
3
5
3
3
3
...

user output
3
5
3
3
3
...

Feedback: Incorrect character on line 7 col 1: expected "4", got "3"

Test 47

Subtask: 7

Verdict:

input
200000 200000
907542569 504758282 948727805 ...

correct output
3
33
3
3
3
...

user output
3
33
3
3
3
...

Feedback: Incorrect character on line 11 col 1: expected "6", got "5"

Test 48

Subtask: 7

Verdict:

input
200000 200000
487056731 460461648 142698485 ...

correct output
3
3
3
3
3
...

user output
3
3
3
3
3
...

Feedback: Incorrect character on line 11 col 2: expected "12", got "11"

Test 49

Subtask: 7

Verdict: ACCEPTED

input
200000 200000
12772 23236 23236 23236 41149 ...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 50

Subtask: 7

Verdict:

input
200000 200000
999993539 999993361 999993361 ...

correct output
125375
16687
-1
84781
46147
...

user output
125375
16687
-1
84781
46147
...

Feedback: Incorrect character on line 137 col 4: expected "26870", got "26869"

Test 51

Subtask: 7

Verdict:

input
200000 200000
999993539 999993361 999993361 ...

correct output
94788
177608
95881
56377
179957
...

user output
94788
177608
95881
56377
179957
...

Feedback: Incorrect character on line 173 col 4: expected "62430", got "62429"

Test 52

Subtask: 1, 2, 3, 5, 6, 7

Verdict: ACCEPTED

input
5 1
2 1 3 5 4
2 2

correct output
2

user output
2

Test 53

Subtask: 1, 2, 3, 4, 5, 6, 7

Verdict: ACCEPTED

input
2 1
1 2
1 1

correct output
0

user output
0

Test 54

Subtask: 2, 5, 6, 7

Verdict: ACCEPTED

input
4 1
2 1 4 3
3 2

correct output
2

user output
2

Test 55

Subtask: 1, 2, 3, 4, 6, 7

Verdict: ACCEPTED

input
10 10
1 1 1 1 2 2 1 1 2 2
7 1
2 6
4 5
...

correct output
-1
1
-1
-1
-1
...

user output
-1
1
-1
-1
-1
...

Test 56

Subtask: 1, 2, 3, 6, 7

Verdict: ACCEPTED

input
10 10
181777772 181777772 181777772 ...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 57

Subtask: 6, 7

Verdict:

input
100 10
92800811 524548163 939127795 9...

correct output
-1
-1
3
-1
3
...

user output
-1
-1
3
-1
3
...

Feedback: Incorrect character on line 7 col 1: expected "8", got "7"

Test 58

Subtask: 3, 4, 7

Verdict: ACCEPTED

input
100 100000
2 2 2 1 2 2 2 2 1 2 1 1 1 2 2 ...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 59

Subtask: 3, 7

Verdict: ACCEPTED

input
100 100000
172695325 172695325 172695325 ...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 60

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
4 10
869194539 239439572 968540665 ...

correct output
-1
2
-1
-1
-1
...

user output
-1
2
-1
-1
-1
...

Test 61

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
10 10
55366041 112170735 112170735 5...

correct output
-1
-1
2
1
1
...

user output
-1
-1
2
1
1
...

Test 62

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
10 10
156018639 156018639 445832758 ...

correct output
-1
1
-1
-1
2
...

user output
-1
1
-1
-1
2
...

Test 63

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
10 10
702507512 702507512 892090406 ...

correct output
-1
2
-1
2
2
...

user output
-1
2
-1
2
2
...

Test 64

Subtask: 2, 6, 7

Verdict: ACCEPTED

input
10 10
720324490 720324490 720324490 ...

correct output
-1
2
2
1
-1
...

user output
-1
2
2
1
-1
...