Submission #911306

# Submission time Handle Problem Language Result Execution time Memory
911306 2024-01-18T18:16:11 Z Tuanlinh123 Event Hopping 2 (JOI21_event2) C++17
39 / 100
208 ms 44092 KB
#include<bits/stdc++.h>
#define ll long long
#define pll pair<ll, ll>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ld long double
using namespace std;

const ll maxn=100005, inf=1e9;
ll l[maxn], r[maxn], sp[20][maxn*2];

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    ll n, k; cin >> n >> k;
    vector <ll> num;
    for (ll i=1; i<=n; i++)
    {
        cin >> l[i] >> r[i];
        num.pb(l[i]); num.pb(r[i]);
    }
    sort(num.begin(), num.end());
    num.resize(unique(num.begin(), num.end())-num.begin());
    ll s=num.size();
    for (ll i=1; i<=s+1; i++) sp[0][i]=s+1;
    for (ll i=1; i<=n; i++)
    {
        l[i]=lower_bound(num.begin(), num.end(), l[i])-num.begin()+1;
        r[i]=lower_bound(num.begin(), num.end(), r[i])-num.begin()+1;
        sp[0][l[i]]=r[i];
    }
    for (ll i=s; i>=1; i--)
        sp[0][i]=min(sp[0][i], sp[0][i+1]);
    for (ll i=1; i<20; i++)
        for (ll j=1; j<=s+1; j++)
            sp[i][j]=sp[i-1][sp[i-1][j]];
    auto query=[&](ll l, ll r)
    {
        ll ans=0, crr=l;
        for (ll i=19; i>=0; i--)
            if (sp[i][crr]<=r)
                ans+=1<<i, crr=sp[i][crr];
        return ans;
    };
    ll cnt=query(1, s);
    if (cnt<k) {cout << -1; exit(0);}
    vector <ll> ans;
    set <pll> S; S.insert(mp(1, s));
    for (ll i=1; i<=n; i++)
    {
        auto it=S.lower_bound(mp(l[i], s+1));
        if (it==S.begin()) continue; it--;
        ll L, R; tie(L, R)=*it;
        if (R<r[i]) continue;
        ll lose=query(L, R)-(query(L, l[i])+query(r[i], R)+1);
        if (cnt-lose<k) continue;
        S.erase(it), cnt-=lose;
        if (L<l[i]) S.insert(mp(L, l[i]));
        if (r[i]<R) S.insert(mp(r[i], R));
        ans.pb(i); if (ans.size()==k) break;
    }
    for (ll i:ans) cout << i << "\n";
}

Compilation message

event2.cpp: In function 'int main()':
event2.cpp:55:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   55 |         if (it==S.begin()) continue; it--;
      |         ^~
event2.cpp:55:38: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   55 |         if (it==S.begin()) continue; it--;
      |                                      ^~
event2.cpp:63:34: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   63 |         ans.pb(i); if (ans.size()==k) break;
      |                        ~~~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 31064 KB Output is correct
2 Correct 6 ms 31068 KB Output is correct
3 Correct 5 ms 31068 KB Output is correct
4 Correct 106 ms 43732 KB Output is correct
5 Correct 104 ms 43340 KB Output is correct
6 Correct 94 ms 43204 KB Output is correct
7 Correct 95 ms 42340 KB Output is correct
8 Correct 102 ms 43716 KB Output is correct
9 Correct 125 ms 43464 KB Output is correct
10 Correct 97 ms 43204 KB Output is correct
11 Correct 91 ms 42440 KB Output is correct
12 Correct 82 ms 41152 KB Output is correct
13 Correct 92 ms 40896 KB Output is correct
14 Correct 77 ms 40780 KB Output is correct
15 Correct 72 ms 40252 KB Output is correct
16 Correct 56 ms 37676 KB Output is correct
17 Correct 54 ms 37608 KB Output is correct
18 Correct 50 ms 37596 KB Output is correct
19 Correct 50 ms 36900 KB Output is correct
20 Correct 47 ms 36804 KB Output is correct
21 Correct 45 ms 36820 KB Output is correct
22 Correct 48 ms 36944 KB Output is correct
23 Correct 50 ms 36832 KB Output is correct
24 Correct 46 ms 36764 KB Output is correct
25 Correct 54 ms 37084 KB Output is correct
26 Correct 48 ms 36916 KB Output is correct
27 Correct 52 ms 37064 KB Output is correct
28 Correct 38 ms 36864 KB Output is correct
29 Correct 42 ms 36804 KB Output is correct
30 Correct 42 ms 36800 KB Output is correct
31 Correct 44 ms 36808 KB Output is correct
32 Correct 45 ms 36804 KB Output is correct
33 Correct 49 ms 36804 KB Output is correct
34 Correct 64 ms 39368 KB Output is correct
35 Correct 59 ms 38424 KB Output is correct
36 Correct 47 ms 37680 KB Output is correct
37 Correct 95 ms 40524 KB Output is correct
38 Correct 73 ms 40444 KB Output is correct
39 Correct 71 ms 40180 KB Output is correct
40 Correct 70 ms 40136 KB Output is correct
41 Correct 71 ms 39920 KB Output is correct
42 Correct 45 ms 36808 KB Output is correct
43 Correct 85 ms 40404 KB Output is correct
44 Correct 83 ms 40376 KB Output is correct
45 Correct 78 ms 40184 KB Output is correct
46 Correct 80 ms 39972 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 31068 KB Output is correct
2 Correct 5 ms 31248 KB Output is correct
3 Correct 5 ms 31068 KB Output is correct
4 Correct 5 ms 31252 KB Output is correct
5 Correct 5 ms 31068 KB Output is correct
6 Correct 5 ms 31068 KB Output is correct
7 Correct 5 ms 31064 KB Output is correct
8 Correct 5 ms 31068 KB Output is correct
9 Correct 5 ms 31232 KB Output is correct
10 Correct 5 ms 31064 KB Output is correct
11 Correct 5 ms 31268 KB Output is correct
12 Correct 5 ms 31068 KB Output is correct
13 Correct 5 ms 31068 KB Output is correct
14 Correct 6 ms 31064 KB Output is correct
15 Correct 5 ms 31068 KB Output is correct
16 Correct 5 ms 31068 KB Output is correct
17 Correct 5 ms 31324 KB Output is correct
18 Correct 5 ms 31068 KB Output is correct
19 Correct 6 ms 31064 KB Output is correct
20 Correct 5 ms 31068 KB Output is correct
21 Correct 6 ms 31520 KB Output is correct
22 Correct 5 ms 31068 KB Output is correct
23 Correct 5 ms 31184 KB Output is correct
24 Correct 5 ms 31068 KB Output is correct
25 Correct 5 ms 31064 KB Output is correct
26 Correct 5 ms 31068 KB Output is correct
27 Correct 5 ms 31192 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 31068 KB Output is correct
2 Correct 5 ms 31248 KB Output is correct
3 Correct 5 ms 31068 KB Output is correct
4 Correct 5 ms 31252 KB Output is correct
5 Correct 5 ms 31068 KB Output is correct
6 Correct 5 ms 31068 KB Output is correct
7 Correct 5 ms 31064 KB Output is correct
8 Correct 5 ms 31068 KB Output is correct
9 Correct 5 ms 31232 KB Output is correct
10 Correct 5 ms 31064 KB Output is correct
11 Correct 5 ms 31268 KB Output is correct
12 Correct 5 ms 31068 KB Output is correct
13 Correct 5 ms 31068 KB Output is correct
14 Correct 6 ms 31064 KB Output is correct
15 Correct 5 ms 31068 KB Output is correct
16 Correct 5 ms 31068 KB Output is correct
17 Correct 5 ms 31324 KB Output is correct
18 Correct 5 ms 31068 KB Output is correct
19 Correct 6 ms 31064 KB Output is correct
20 Correct 5 ms 31068 KB Output is correct
21 Correct 6 ms 31520 KB Output is correct
22 Correct 5 ms 31068 KB Output is correct
23 Correct 5 ms 31184 KB Output is correct
24 Correct 5 ms 31068 KB Output is correct
25 Correct 5 ms 31064 KB Output is correct
26 Correct 5 ms 31068 KB Output is correct
27 Correct 5 ms 31192 KB Output is correct
28 Correct 8 ms 31452 KB Output is correct
29 Correct 7 ms 31320 KB Output is correct
30 Correct 7 ms 31324 KB Output is correct
31 Correct 7 ms 31308 KB Output is correct
32 Correct 7 ms 31324 KB Output is correct
33 Correct 7 ms 31320 KB Output is correct
34 Correct 7 ms 31324 KB Output is correct
35 Correct 8 ms 31580 KB Output is correct
36 Correct 8 ms 31572 KB Output is correct
37 Correct 7 ms 31576 KB Output is correct
38 Correct 7 ms 31456 KB Output is correct
39 Correct 8 ms 31580 KB Output is correct
40 Correct 8 ms 31580 KB Output is correct
41 Correct 9 ms 31456 KB Output is correct
42 Correct 6 ms 31324 KB Output is correct
43 Correct 7 ms 31324 KB Output is correct
44 Correct 7 ms 31324 KB Output is correct
45 Correct 7 ms 31324 KB Output is correct
46 Correct 7 ms 31324 KB Output is correct
47 Correct 6 ms 31324 KB Output is correct
48 Correct 7 ms 31520 KB Output is correct
49 Correct 7 ms 31324 KB Output is correct
50 Correct 7 ms 31400 KB Output is correct
51 Correct 8 ms 31400 KB Output is correct
52 Correct 7 ms 31324 KB Output is correct
53 Correct 7 ms 31304 KB Output is correct
54 Correct 6 ms 31324 KB Output is correct
55 Correct 6 ms 31324 KB Output is correct
56 Correct 6 ms 31324 KB Output is correct
57 Correct 7 ms 31324 KB Output is correct
58 Correct 7 ms 31324 KB Output is correct
59 Correct 7 ms 31476 KB Output is correct
60 Correct 8 ms 31320 KB Output is correct
61 Correct 7 ms 31324 KB Output is correct
62 Correct 7 ms 31324 KB Output is correct
63 Correct 6 ms 31324 KB Output is correct
64 Correct 6 ms 31444 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 31064 KB Output is correct
2 Correct 6 ms 31068 KB Output is correct
3 Correct 5 ms 31068 KB Output is correct
4 Correct 106 ms 43732 KB Output is correct
5 Correct 104 ms 43340 KB Output is correct
6 Correct 94 ms 43204 KB Output is correct
7 Correct 95 ms 42340 KB Output is correct
8 Correct 102 ms 43716 KB Output is correct
9 Correct 125 ms 43464 KB Output is correct
10 Correct 97 ms 43204 KB Output is correct
11 Correct 91 ms 42440 KB Output is correct
12 Correct 82 ms 41152 KB Output is correct
13 Correct 92 ms 40896 KB Output is correct
14 Correct 77 ms 40780 KB Output is correct
15 Correct 72 ms 40252 KB Output is correct
16 Correct 56 ms 37676 KB Output is correct
17 Correct 54 ms 37608 KB Output is correct
18 Correct 50 ms 37596 KB Output is correct
19 Correct 50 ms 36900 KB Output is correct
20 Correct 47 ms 36804 KB Output is correct
21 Correct 45 ms 36820 KB Output is correct
22 Correct 48 ms 36944 KB Output is correct
23 Correct 50 ms 36832 KB Output is correct
24 Correct 46 ms 36764 KB Output is correct
25 Correct 54 ms 37084 KB Output is correct
26 Correct 48 ms 36916 KB Output is correct
27 Correct 52 ms 37064 KB Output is correct
28 Correct 38 ms 36864 KB Output is correct
29 Correct 42 ms 36804 KB Output is correct
30 Correct 42 ms 36800 KB Output is correct
31 Correct 44 ms 36808 KB Output is correct
32 Correct 45 ms 36804 KB Output is correct
33 Correct 49 ms 36804 KB Output is correct
34 Correct 64 ms 39368 KB Output is correct
35 Correct 59 ms 38424 KB Output is correct
36 Correct 47 ms 37680 KB Output is correct
37 Correct 95 ms 40524 KB Output is correct
38 Correct 73 ms 40444 KB Output is correct
39 Correct 71 ms 40180 KB Output is correct
40 Correct 70 ms 40136 KB Output is correct
41 Correct 71 ms 39920 KB Output is correct
42 Correct 45 ms 36808 KB Output is correct
43 Correct 85 ms 40404 KB Output is correct
44 Correct 83 ms 40376 KB Output is correct
45 Correct 78 ms 40184 KB Output is correct
46 Correct 80 ms 39972 KB Output is correct
47 Correct 5 ms 31068 KB Output is correct
48 Correct 5 ms 31248 KB Output is correct
49 Correct 5 ms 31068 KB Output is correct
50 Correct 5 ms 31252 KB Output is correct
51 Correct 5 ms 31068 KB Output is correct
52 Correct 5 ms 31068 KB Output is correct
53 Correct 5 ms 31064 KB Output is correct
54 Correct 5 ms 31068 KB Output is correct
55 Correct 5 ms 31232 KB Output is correct
56 Correct 5 ms 31064 KB Output is correct
57 Correct 5 ms 31268 KB Output is correct
58 Correct 5 ms 31068 KB Output is correct
59 Correct 5 ms 31068 KB Output is correct
60 Correct 6 ms 31064 KB Output is correct
61 Correct 5 ms 31068 KB Output is correct
62 Correct 5 ms 31068 KB Output is correct
63 Correct 5 ms 31324 KB Output is correct
64 Correct 5 ms 31068 KB Output is correct
65 Correct 6 ms 31064 KB Output is correct
66 Correct 5 ms 31068 KB Output is correct
67 Correct 6 ms 31520 KB Output is correct
68 Correct 5 ms 31068 KB Output is correct
69 Correct 5 ms 31184 KB Output is correct
70 Correct 5 ms 31068 KB Output is correct
71 Correct 5 ms 31064 KB Output is correct
72 Correct 5 ms 31068 KB Output is correct
73 Correct 5 ms 31192 KB Output is correct
74 Correct 8 ms 31452 KB Output is correct
75 Correct 7 ms 31320 KB Output is correct
76 Correct 7 ms 31324 KB Output is correct
77 Correct 7 ms 31308 KB Output is correct
78 Correct 7 ms 31324 KB Output is correct
79 Correct 7 ms 31320 KB Output is correct
80 Correct 7 ms 31324 KB Output is correct
81 Correct 8 ms 31580 KB Output is correct
82 Correct 8 ms 31572 KB Output is correct
83 Correct 7 ms 31576 KB Output is correct
84 Correct 7 ms 31456 KB Output is correct
85 Correct 8 ms 31580 KB Output is correct
86 Correct 8 ms 31580 KB Output is correct
87 Correct 9 ms 31456 KB Output is correct
88 Correct 6 ms 31324 KB Output is correct
89 Correct 7 ms 31324 KB Output is correct
90 Correct 7 ms 31324 KB Output is correct
91 Correct 7 ms 31324 KB Output is correct
92 Correct 7 ms 31324 KB Output is correct
93 Correct 6 ms 31324 KB Output is correct
94 Correct 7 ms 31520 KB Output is correct
95 Correct 7 ms 31324 KB Output is correct
96 Correct 7 ms 31400 KB Output is correct
97 Correct 8 ms 31400 KB Output is correct
98 Correct 7 ms 31324 KB Output is correct
99 Correct 7 ms 31304 KB Output is correct
100 Correct 6 ms 31324 KB Output is correct
101 Correct 6 ms 31324 KB Output is correct
102 Correct 6 ms 31324 KB Output is correct
103 Correct 7 ms 31324 KB Output is correct
104 Correct 7 ms 31324 KB Output is correct
105 Correct 7 ms 31476 KB Output is correct
106 Correct 8 ms 31320 KB Output is correct
107 Correct 7 ms 31324 KB Output is correct
108 Correct 7 ms 31324 KB Output is correct
109 Correct 6 ms 31324 KB Output is correct
110 Correct 6 ms 31444 KB Output is correct
111 Correct 75 ms 36868 KB Output is correct
112 Correct 68 ms 36804 KB Output is correct
113 Correct 69 ms 36812 KB Output is correct
114 Correct 67 ms 36784 KB Output is correct
115 Correct 66 ms 36880 KB Output is correct
116 Correct 62 ms 36808 KB Output is correct
117 Correct 63 ms 36800 KB Output is correct
118 Correct 208 ms 44092 KB Output is correct
119 Correct 177 ms 43204 KB Output is correct
120 Correct 122 ms 40392 KB Output is correct
121 Correct 58 ms 36804 KB Output is correct
122 Correct 143 ms 41160 KB Output is correct
123 Correct 140 ms 40556 KB Output is correct
124 Correct 128 ms 40644 KB Output is correct
125 Correct 66 ms 37252 KB Output is correct
126 Incorrect 90 ms 37576 KB Output isn't correct
127 Halted 0 ms 0 KB -