Submission #902021

# Submission time Handle Problem Language Result Execution time Memory
902021 2024-01-10T05:28:17 Z 089487 Joker (BOI20_joker) C++14
14 / 100
2000 ms 14380 KB
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("sse4,abm,avx,popcnt")
#include<bits/stdc++.h>
//#define int long long
#define quick ios::sync_with_stdio(0);cin.tie(0);
#define rep(x,a,b) for(int x=a;x<=b;x++)
#define repd(x,a,b) for(int x=a;x>=b;x--)
#define lowbit(x) (x&-x)
#define F first
#define S second
#define sz(x) (int)(x.size())
#define all(x) x.begin(),x.end()
#define mp make_pair
#define eb emplace_back
using namespace std;
typedef pair<int,int> pii;
void debug(){
    cout<<"\n";
}
template <class T,class ... U >
void debug(T a, U ... b){
    cout<<a<<" ",debug(b...);
}
const int N=5e5+2;
pii e[N];
int p[N];
int sz[N];
void init(int n){
    rep(i,1,n) p[i]=i,sz[i]=1;
}
int fp(int x){
    if(x!=p[x]) return fp(p[x]);
    return x;
}
int ans[N];
stack<pii> state;
int n,m;
void _Union(int a,int b){
    a=fp(a);
    b=fp(b);
    if(sz[a]<sz[b]) swap(a,b);
    state.push(mp(a,b));
    p[b]=a;
    sz[a]+=sz[b];
    return ;
}
bool Union(int a,int b){
    int fa=fp(a);
    int fb=fp(b);
    if(fa==fb) return false;
    _Union(fa,b+n);
    _Union(fb,a+n);
    return true;
}
void undo(){
    pii P=state.top();
    sz[P.F]-=sz[P.S];
    p[P.S]=P.S;
    state.pop();
}
void solve(int l,int r,int vl,int vr){
    if(l>r) return ;
    //debug("solve",l,r,vl,vr);
    if(vl==vr){
        rep(i,l,r) ans[i]=vl;
        return ;
    }
    int mid=(l+r)>>1;
    ans[mid]=vr;
    for(int i=mid;i<=vr;i++){
        if(i==r+1) i=max(i,vl);
        if(!Union(e[i].F,e[i].S)){
            ans[mid]=i-1;
            break;
        }
    }

    // [r+1,vl-1] is done
    for(int i=ans[mid];i>=max(vl,mid);i--){
        undo();
        undo();
    }
    solve(l,mid-1,vl,ans[mid]);
    rep(i,mid,min(r,vl-1)){
        undo();
        undo();
    }
    rep(i,max(r+1,vl),ans[mid]-1) Union(e[i].F,e[i].S);
    solve(mid+1,r,ans[mid],vr);
    rep(i,max(r+1,vl),ans[mid]-1) undo(),undo();
}
signed main(){
	quick
    int q;
    cin>>n>>m>>q;
    init(n*2);
    rep(i,0,m-1){
        cin>>e[i].F>>e[i].S;
        e[i+m]=e[i];
    }
    int m0=m;
    m*=2;
    solve(0,m-1,0,m-1);
    /*rep(i,0,m-1){
        cout<<ans[i]<<" \n"[i==m-1];
    }
    rep(i,0,m-1){
        init(2*n);
        ans[i]=-1;
        rep(j,i,m-1){
            if(Union(e[j].F,e[j].S)) ans[i]=j;
            else break;
        }
        cout<<ans[i]<<" \n"[i==m-1];
    }*/
    string Ans[2]={"YES","NO"};
    while(q--){
        int l,r;
        cin>>l>>r;
        --l,--r;
        cout<<Ans[(ans[r+1]>=l+m0-1)]<<"\n";
    }
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 1 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 6492 KB Output is correct
6 Correct 1 ms 6492 KB Output is correct
7 Correct 1 ms 6492 KB Output is correct
8 Correct 1 ms 6492 KB Output is correct
9 Correct 1 ms 6492 KB Output is correct
10 Correct 1 ms 6492 KB Output is correct
11 Correct 1 ms 6492 KB Output is correct
12 Correct 1 ms 6488 KB Output is correct
13 Correct 1 ms 6492 KB Output is correct
14 Correct 2 ms 6492 KB Output is correct
15 Correct 1 ms 6492 KB Output is correct
16 Correct 2 ms 6492 KB Output is correct
17 Correct 1 ms 6492 KB Output is correct
18 Correct 1 ms 6492 KB Output is correct
19 Correct 1 ms 6492 KB Output is correct
20 Correct 1 ms 6612 KB Output is correct
21 Correct 1 ms 6492 KB Output is correct
22 Correct 1 ms 6492 KB Output is correct
23 Correct 1 ms 6492 KB Output is correct
24 Correct 1 ms 6492 KB Output is correct
25 Correct 1 ms 6492 KB Output is correct
26 Correct 1 ms 6492 KB Output is correct
27 Correct 1 ms 6488 KB Output is correct
28 Correct 1 ms 6492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 1 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 6492 KB Output is correct
6 Correct 1 ms 6492 KB Output is correct
7 Correct 1 ms 6492 KB Output is correct
8 Correct 1 ms 6492 KB Output is correct
9 Correct 1 ms 6492 KB Output is correct
10 Correct 1 ms 6492 KB Output is correct
11 Correct 1 ms 6492 KB Output is correct
12 Correct 1 ms 6488 KB Output is correct
13 Correct 1 ms 6492 KB Output is correct
14 Correct 2 ms 6492 KB Output is correct
15 Correct 1 ms 6492 KB Output is correct
16 Correct 2 ms 6492 KB Output is correct
17 Correct 1 ms 6492 KB Output is correct
18 Correct 1 ms 6492 KB Output is correct
19 Correct 1 ms 6492 KB Output is correct
20 Correct 1 ms 6612 KB Output is correct
21 Correct 1 ms 6492 KB Output is correct
22 Correct 1 ms 6492 KB Output is correct
23 Correct 1 ms 6492 KB Output is correct
24 Correct 1 ms 6492 KB Output is correct
25 Correct 1 ms 6492 KB Output is correct
26 Correct 1 ms 6492 KB Output is correct
27 Correct 1 ms 6488 KB Output is correct
28 Correct 1 ms 6492 KB Output is correct
29 Correct 3 ms 6492 KB Output is correct
30 Correct 4 ms 6624 KB Output is correct
31 Correct 5 ms 6488 KB Output is correct
32 Correct 4 ms 6492 KB Output is correct
33 Correct 3 ms 6556 KB Output is correct
34 Correct 4 ms 6492 KB Output is correct
35 Correct 5 ms 6492 KB Output is correct
36 Correct 3 ms 6488 KB Output is correct
37 Correct 3 ms 6492 KB Output is correct
38 Correct 107 ms 6696 KB Output is correct
39 Correct 4 ms 6492 KB Output is correct
40 Correct 3 ms 6744 KB Output is correct
41 Correct 3 ms 6492 KB Output is correct
42 Correct 3 ms 6492 KB Output is correct
43 Correct 13 ms 6492 KB Output is correct
44 Correct 7 ms 6492 KB Output is correct
45 Correct 4 ms 6832 KB Output is correct
46 Correct 4 ms 6488 KB Output is correct
47 Correct 5 ms 6652 KB Output is correct
48 Correct 5 ms 6488 KB Output is correct
49 Correct 6 ms 6652 KB Output is correct
50 Correct 9 ms 6492 KB Output is correct
51 Correct 14 ms 6492 KB Output is correct
52 Correct 8 ms 6488 KB Output is correct
53 Correct 5 ms 6492 KB Output is correct
54 Correct 4 ms 6492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 1 ms 6492 KB Output is correct
3 Correct 359 ms 12212 KB Output is correct
4 Execution timed out 2043 ms 14380 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 1 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 6492 KB Output is correct
6 Correct 1 ms 6492 KB Output is correct
7 Correct 1 ms 6492 KB Output is correct
8 Correct 1 ms 6492 KB Output is correct
9 Correct 1 ms 6492 KB Output is correct
10 Correct 1 ms 6492 KB Output is correct
11 Correct 1 ms 6492 KB Output is correct
12 Correct 1 ms 6488 KB Output is correct
13 Correct 1 ms 6492 KB Output is correct
14 Correct 2 ms 6492 KB Output is correct
15 Correct 1 ms 6492 KB Output is correct
16 Correct 2 ms 6492 KB Output is correct
17 Correct 1 ms 6492 KB Output is correct
18 Correct 1 ms 6492 KB Output is correct
19 Correct 1 ms 6492 KB Output is correct
20 Correct 1 ms 6612 KB Output is correct
21 Correct 1 ms 6492 KB Output is correct
22 Correct 1 ms 6492 KB Output is correct
23 Correct 1 ms 6492 KB Output is correct
24 Correct 1 ms 6492 KB Output is correct
25 Correct 1 ms 6492 KB Output is correct
26 Correct 1 ms 6492 KB Output is correct
27 Correct 1 ms 6488 KB Output is correct
28 Correct 1 ms 6492 KB Output is correct
29 Correct 359 ms 12212 KB Output is correct
30 Execution timed out 2043 ms 14380 KB Time limit exceeded
31 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 1 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 6492 KB Output is correct
6 Correct 1 ms 6492 KB Output is correct
7 Correct 1 ms 6492 KB Output is correct
8 Correct 1 ms 6492 KB Output is correct
9 Correct 1 ms 6492 KB Output is correct
10 Correct 1 ms 6492 KB Output is correct
11 Correct 1 ms 6492 KB Output is correct
12 Correct 1 ms 6488 KB Output is correct
13 Correct 1 ms 6492 KB Output is correct
14 Correct 2 ms 6492 KB Output is correct
15 Correct 1 ms 6492 KB Output is correct
16 Correct 2 ms 6492 KB Output is correct
17 Correct 1 ms 6492 KB Output is correct
18 Correct 1 ms 6492 KB Output is correct
19 Correct 1 ms 6492 KB Output is correct
20 Correct 1 ms 6612 KB Output is correct
21 Correct 1 ms 6492 KB Output is correct
22 Correct 1 ms 6492 KB Output is correct
23 Correct 1 ms 6492 KB Output is correct
24 Correct 1 ms 6492 KB Output is correct
25 Correct 1 ms 6492 KB Output is correct
26 Correct 1 ms 6492 KB Output is correct
27 Correct 1 ms 6488 KB Output is correct
28 Correct 1 ms 6492 KB Output is correct
29 Correct 3 ms 6492 KB Output is correct
30 Correct 4 ms 6624 KB Output is correct
31 Correct 5 ms 6488 KB Output is correct
32 Correct 4 ms 6492 KB Output is correct
33 Correct 3 ms 6556 KB Output is correct
34 Correct 4 ms 6492 KB Output is correct
35 Correct 5 ms 6492 KB Output is correct
36 Correct 3 ms 6488 KB Output is correct
37 Correct 3 ms 6492 KB Output is correct
38 Correct 107 ms 6696 KB Output is correct
39 Correct 4 ms 6492 KB Output is correct
40 Correct 3 ms 6744 KB Output is correct
41 Correct 3 ms 6492 KB Output is correct
42 Correct 3 ms 6492 KB Output is correct
43 Correct 13 ms 6492 KB Output is correct
44 Correct 7 ms 6492 KB Output is correct
45 Correct 4 ms 6832 KB Output is correct
46 Correct 4 ms 6488 KB Output is correct
47 Correct 5 ms 6652 KB Output is correct
48 Correct 5 ms 6488 KB Output is correct
49 Correct 6 ms 6652 KB Output is correct
50 Correct 9 ms 6492 KB Output is correct
51 Correct 14 ms 6492 KB Output is correct
52 Correct 8 ms 6488 KB Output is correct
53 Correct 5 ms 6492 KB Output is correct
54 Correct 4 ms 6492 KB Output is correct
55 Correct 330 ms 11076 KB Output is correct
56 Execution timed out 2074 ms 14032 KB Time limit exceeded
57 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 1 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 6492 KB Output is correct
6 Correct 1 ms 6492 KB Output is correct
7 Correct 1 ms 6492 KB Output is correct
8 Correct 1 ms 6492 KB Output is correct
9 Correct 1 ms 6492 KB Output is correct
10 Correct 1 ms 6492 KB Output is correct
11 Correct 1 ms 6492 KB Output is correct
12 Correct 1 ms 6488 KB Output is correct
13 Correct 1 ms 6492 KB Output is correct
14 Correct 2 ms 6492 KB Output is correct
15 Correct 1 ms 6492 KB Output is correct
16 Correct 2 ms 6492 KB Output is correct
17 Correct 1 ms 6492 KB Output is correct
18 Correct 1 ms 6492 KB Output is correct
19 Correct 1 ms 6492 KB Output is correct
20 Correct 1 ms 6612 KB Output is correct
21 Correct 1 ms 6492 KB Output is correct
22 Correct 1 ms 6492 KB Output is correct
23 Correct 1 ms 6492 KB Output is correct
24 Correct 1 ms 6492 KB Output is correct
25 Correct 1 ms 6492 KB Output is correct
26 Correct 1 ms 6492 KB Output is correct
27 Correct 1 ms 6488 KB Output is correct
28 Correct 1 ms 6492 KB Output is correct
29 Correct 3 ms 6492 KB Output is correct
30 Correct 4 ms 6624 KB Output is correct
31 Correct 5 ms 6488 KB Output is correct
32 Correct 4 ms 6492 KB Output is correct
33 Correct 3 ms 6556 KB Output is correct
34 Correct 4 ms 6492 KB Output is correct
35 Correct 5 ms 6492 KB Output is correct
36 Correct 3 ms 6488 KB Output is correct
37 Correct 3 ms 6492 KB Output is correct
38 Correct 107 ms 6696 KB Output is correct
39 Correct 4 ms 6492 KB Output is correct
40 Correct 3 ms 6744 KB Output is correct
41 Correct 3 ms 6492 KB Output is correct
42 Correct 3 ms 6492 KB Output is correct
43 Correct 13 ms 6492 KB Output is correct
44 Correct 7 ms 6492 KB Output is correct
45 Correct 4 ms 6832 KB Output is correct
46 Correct 4 ms 6488 KB Output is correct
47 Correct 5 ms 6652 KB Output is correct
48 Correct 5 ms 6488 KB Output is correct
49 Correct 6 ms 6652 KB Output is correct
50 Correct 9 ms 6492 KB Output is correct
51 Correct 14 ms 6492 KB Output is correct
52 Correct 8 ms 6488 KB Output is correct
53 Correct 5 ms 6492 KB Output is correct
54 Correct 4 ms 6492 KB Output is correct
55 Correct 359 ms 12212 KB Output is correct
56 Execution timed out 2043 ms 14380 KB Time limit exceeded
57 Halted 0 ms 0 KB -