Submission details
Task:Sort
Sender:jsesok
Submission time:2026-10-02 18:20:30 +0300
Language:C++ (C++23)
Status:READY
Result:13
Feedback
subtaskverdictscore
#1ACCEPTED6
#20
#3ACCEPTED7
#40
#50
#60
#70
Test results
testverdicttimesubtask
#1ACCEPTED0.00 s2, 6, 7details
#2ACCEPTED0.00 s1, 2, 3, 6, 7details
#30.00 s2, 6, 7details
#4ACCEPTED0.00 s1, 2, 3, 6, 7details
#5ACCEPTED0.00 s1, 2, 3, 6, 7details
#6ACCEPTED0.00 s1, 2, 3, 6, 7details
#7ACCEPTED0.00 s1, 2, 3, 6, 7details
#8ACCEPTED0.00 s1, 2, 3, 6, 7details
#9ACCEPTED0.00 s1, 2, 3, 6, 7details
#10ACCEPTED0.00 s1, 2, 3, 6, 7details
#11ACCEPTED0.00 s2, 6, 7details
#12ACCEPTED0.00 s2, 6, 7details
#13ACCEPTED0.00 s2, 6, 7details
#140.00 s2, 6, 7details
#15ACCEPTED0.00 s2, 6, 7details
#16ACCEPTED0.18 s3, 7details
#17ACCEPTED0.17 s3, 7details
#18ACCEPTED0.18 s3, 7details
#19ACCEPTED0.17 s3, 7details
#20ACCEPTED0.17 s3, 7details
#21ACCEPTED0.17 s3, 7details
#22ACCEPTED0.17 s3, 7details
#23ACCEPTED0.16 s3, 7details
#24ACCEPTED0.61 s4, 7details
#25ACCEPTED0.50 s4, 7details
#26ACCEPTED1.27 s4, 7details
#270.62 s4, 7details
#28ACCEPTED0.77 s4, 7details
#29ACCEPTED0.60 s4, 7details
#30ACCEPTED0.01 s5, 6, 7details
#31ACCEPTED0.01 s5, 6, 7details
#32ACCEPTED0.01 s5, 6, 7details
#33ACCEPTED0.02 s5, 6, 7details
#340.01 s5, 6, 7details
#35ACCEPTED0.02 s5, 6, 7details
#36ACCEPTED0.01 s6, 7details
#37ACCEPTED0.01 s6, 7details
#38ACCEPTED0.02 s6, 7details
#39ACCEPTED0.02 s6, 7details
#400.01 s6, 7details
#41ACCEPTED0.02 s6, 7details
#42ACCEPTED0.60 s7details
#43ACCEPTED0.57 s7details
#44ACCEPTED0.57 s7details
#45ACCEPTED1.55 s7details
#46ACCEPTED1.69 s7details
#47ACCEPTED1.71 s7details
#48ACCEPTED1.71 s7details
#490.64 s7details
#50ACCEPTED0.89 s7details
#51ACCEPTED0.68 s7details
#52ACCEPTED0.00 s1, 2, 3, 5, 6, 7details
#53ACCEPTED0.00 s1, 2, 3, 4, 5, 6, 7details
#54ACCEPTED0.00 s2, 5, 6, 7details
#55ACCEPTED0.00 s1, 2, 3, 4, 6, 7details
#56ACCEPTED0.00 s1, 2, 3, 6, 7details
#57ACCEPTED0.00 s6, 7details
#58ACCEPTED0.03 s3, 4, 7details
#59ACCEPTED0.03 s3, 7details
#60ACCEPTED0.00 s2, 6, 7details
#61ACCEPTED0.00 s2, 6, 7details
#62ACCEPTED0.00 s2, 6, 7details
#63ACCEPTED0.00 s2, 6, 7details
#64ACCEPTED0.00 s2, 6, 7details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:105:15: warning: unused variable 'm' [-Wunused-variable]
  105 |     int n, q, m, p, s, l=-1, sum, ba, bb, bam, bbm, d, can, sq, left, right, si;
      |               ^
input/code.cpp:105:56: warning: unused variable 'can' [-Wunused-variable]
  105 |     int n, q, m, p, s, l=-1, sum, ba, bb, bam, bbm, d, can, sq, left, right, si;
      |                                                        ^~~
input/code.cpp:105:61: warning: unused variable 'sq' [-Wunused-variable]
  105 |     int n, q, m, p, s, l=-1, sum, ba, bb, bam, bbm, d, can, sq, left, right, si;
      |                                                             ^~
input/code.cpp:105:65: warning: unused variable 'left' [-Wunused-variable]
  105 |     int n, q, m, p, s, l=-1, sum, ba, bb, bam, bbm, d, can, sq, left, right, si;
      |                                                                 ^~~~
input/code.cpp:105:71: warning: unused variable 'right' [-Wunused-var...

Code

#include <iostream>
#include <numeric>
#include <iomanip>
#include <vector>
#include <set>
#include <map>
#include <unordered_map>
#include <algorithm>
#include <queue>
#include <random>
#include <cassert>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
int cal(int ba, int bb, int bam, int bbm, int d)
{
    bb-=bbm;
    ba-=d;
    if (max(ba, bb)<=0)
    {
        return 2;
    }
    ba=(ba+d-1)/d;
    bb=(bb+d-1)/d;
    if (bb<=ba)
    {
        return 2+ba*2;
    }
    else if (bb==ba+1)
    {
        return 2+2*bb-1;
    }
    else
    {
        return 2+bb*2;
    }
}
struct tree
{
    vector<vector<int>> t;
    int si=1;
    void init(int n)
    {
        while (n>si)
        {
            si*=2;
        }
        t.assign(si*2-1, {});
    }
    void build(int l, int r, int x, vector<int> & v)
    {
        if (l==r-1)
        {
            if (l<(int) v.size())
                t[x].push_back(v[l]);
            return ;
        }
        int m=(l+r)/2;
        build(l, m, x*2+1, v);
        build(m, r, x*2+2, v);
        t[x].resize((int) t[x*2+1].size()+(int) t[x*2+2].size());
        merge(t[x*2+1].begin(), t[x*2+1].end(), t[x*2+2].begin(), t[x*2+2].end(), t[x].begin());
    }
    void build(vector<int> &v)
    {
        build(0, si, 0, v);
    }
    int biger(int l, int r, int x, int z, int le, int re)
    {
        if (le<=l && r<=re)
        {
            return distance(upper_bound(t[x].begin(), t[x].end(), z), t[x].end());
        }
        if (l>=re || r<=le)
            return 0;
        int m=(l+r)/2;
        return biger(l, m, x*2+1, z, le, re)+biger(m, r, x*2+2, z, le, re);
    }
    int biger(int z, int le, int re)
    {
        return biger(0, si, 0, z, le, re);
    }
    int smaler(int l, int r, int x, int z, int le, int re)
    {
        if (le<=l && r<=re)
        {
            return distance(t[x].begin(), upper_bound(t[x].begin(), t[x].end(), z));
        }
        if (l>=re || r<=le)
            return 0;
        int m=(l+r)/2;
        return smaler(l, m, x*2+1, z, le, re)+smaler(m, r, x*2+2, z, le, re);
    }
    int smaler(int z, int le, int re)
    {
        return smaler(0, si, 0, z, le, re);
    }
};
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n, q, m, p, s, l=-1, sum, ba, bb, bam, bbm, d, can, sq, left, right, si;
    cin>>n>>q;
    vector<int> ma(n), mi(n), a(n), r(n+1), kop, sor, ans(q);
    vector<pair<int, int>> v;
    vector<tuple<int, int, int>> mo;
    for (int i=0; i<n; ++i)
    {
        cin>>a[i];
        v.push_back({a[i], i});
    }
    sort(v.begin(), v.end());
    for (int i=0; i<n; ++i)
    {
        a[v[i].second]=i+1;
    }
    ma[0]=a[0];
    for (int i=1; i<n; ++i)
        ma[i]=max(a[i], ma[i-1]);
    mi[n-1]=a[n-1];
    for (int i=n-2; i>=0; --i)
    {
        mi[i]=min(a[i], mi[i+1]);
    }
    for (int i=0; i<n; ++i)
    {
        if (l>=i)
        {
            r[i]=l;
        }
        else
        {
            l=i;
            for (int j=i+1; j<n; ++j)
            {
                if (a[j-1]>a[j])
                    break;
                l=j;
            }
            r[i]=l;
        }
    }
    r[n]=n-1;
    for (int j=0; j<q; ++j)
    {
        cin>>p>>s;
        if (p+s<=n)
        {
            sum=0;
            if (ma[p-1]>mi[p] || r[p]<n-s-1 || mi[n-s]<ma[n-s-1])
            {
                ans[j]=-1;
                continue;
            }
            if (r[0]<p-1)
                sum+=1;
            if (r[n-s]!=n-1)
                sum+=1;
            ans[j]=sum;
        }
        else
        {
            mo.push_back({p, s, j});
        }
    }
    tree tr;
    tr.init(n);
    tr.build(a);
    si=(int) mo.size();
    for (int i=0; i<si; ++i)
    {
        p=get<0>(mo[i]);
        s=get<1>(mo[i]);
        d=s+p-n;
        ba=tr.biger(p, 0, p);
        bam=tr.biger(p, n-s, p);
        bb=tr.smaler(n-s, n-s, n);
        bbm=tr.smaler(n-s, n-s, p);
        if ((bb==0 && r[0]>=n-s-1) || (ba==0 && r[p]==n-1))
        {
            ans[get<2>(mo[i])]=1;
            continue;
        }
        ans[get<2>(mo[i])]=min(cal(ba, bb, bam, bbm, d), cal(bb, ba, bbm, bam, d));
    }
    for (int i=0; i<q; ++i)
    {
        cout<<ans[i]<<"\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:

input
1 1
417021999
1 1

correct output
0

user output
1

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

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:

input
10 10
221045363 282395847 441913686 ...

correct output
0
0
0
0
0
...

user output
1
0
1
1
0
...

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

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: ACCEPTED

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
...

Test 25

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
1
-1
1
-1
1
...

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

Test 26

Subtask: 4, 7

Verdict: ACCEPTED

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
...

Test 27

Subtask: 4, 7

Verdict:

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
1
1
0
1
...

Feedback: Incorrect character on line 2 col 1: expected "0", got "1"

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: ACCEPTED

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
...

Test 31

Subtask: 5, 6, 7

Verdict: ACCEPTED

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
...

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: ACCEPTED

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

correct output
3
3
3
3
11
...

user output
3
3
3
3
11
...

Test 34

Subtask: 5, 6, 7

Verdict:

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
1
1
1
1
0
...

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

Test 35

Subtask: 5, 6, 7

Verdict: ACCEPTED

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

correct output
2039
1910
-1
687
673
...

user output
2039
1910
-1
687
673
...

Test 36

Subtask: 6, 7

Verdict: ACCEPTED

input
5000 5000
202010 457852 826471 926337 10...

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

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

Test 37

Subtask: 6, 7

Verdict: ACCEPTED

input
5000 5000
190583 326486 431922 462939 72...

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

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

Test 38

Subtask: 6, 7

Verdict: ACCEPTED

input
5000 5000
821998255 400550008 71790232 5...

correct output
5
3
3
2
5
...

user output
5
3
3
2
5
...

Test 39

Subtask: 6, 7

Verdict: ACCEPTED

input
5000 5000
266174928 446601941 191252234 ...

correct output
3
3
414
4
3
...

user output
3
3
414
4
3
...

Test 40

Subtask: 6, 7

Verdict:

input
5000 5000
11621 243915 243915 949123 137...

correct output
0
0
0
0
0
...

user output
1
1
1
0
1
...

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

Test 41

Subtask: 6, 7

Verdict: ACCEPTED

input
5000 5000
999767052 998555066 997822810 ...

correct output
919
459
505
833
809
...

user output
919
459
505
833
809
...

Test 42

Subtask: 7

Verdict: ACCEPTED

input
200000 200000
478025 478025 478025 478025 47...

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

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

Test 43

Subtask: 7

Verdict: ACCEPTED

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

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

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

Test 44

Subtask: 7

Verdict: ACCEPTED

input
199531 200000
11328 26391 30353 37063 44412 ...

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

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

Test 45

Subtask: 7

Verdict: ACCEPTED

input
200000 200000
106738201 369187074 412614650 ...

correct output
2
12
3
19
3
...

user output
2
12
3
19
3
...

Test 46

Subtask: 7

Verdict: ACCEPTED

input
200000 200000
670611290 43427363 8475380 309...

correct output
3
5
3
3
3
...

user output
3
5
3
3
3
...

Test 47

Subtask: 7

Verdict: ACCEPTED

input
200000 200000
907542569 504758282 948727805 ...

correct output
3
33
3
3
3
...

user output
3
33
3
3
3
...

Test 48

Subtask: 7

Verdict: ACCEPTED

input
200000 200000
487056731 460461648 142698485 ...

correct output
3
3
3
3
3
...

user output
3
3
3
3
3
...

Test 49

Subtask: 7

Verdict:

input
200000 200000
12772 23236 23236 23236 41149 ...

correct output
0
0
0
0
0
...

user output
1
1
1
1
1
...

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

Test 50

Subtask: 7

Verdict: ACCEPTED

input
200000 200000
999993539 999993361 999993361 ...

correct output
125375
16687
-1
84781
46147
...

user output
125375
16687
-1
84781
46147
...

Test 51

Subtask: 7

Verdict: ACCEPTED

input
200000 200000
999993539 999993361 999993361 ...

correct output
94788
177608
95881
56377
179957
...

user output
94788
177608
95881
56377
179957
...

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: ACCEPTED

input
100 10
92800811 524548163 939127795 9...

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

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

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
...