Submission #27696734


Source Code Expand

/**
 *    author:  gary
 *    created: 04.12.2021 19:52:07
**/
#include<bits/stdc++.h>
#define rb(a,b,c) for(int a=b;a<=c;++a)
#define rl(a,b,c) for(int a=b;a>=c;--a)
#define rep(a,b) for(int a=0;a<b;++a)
#define LL long long
#define PB push_back
#define POB pop_back
#define II(a,b) make_pair(a,b)
#define FIR first
#define SEC second
#define SRAND mt19937 rng(chrono::steady_clock::now().time_since_epoch().count())
#define random(a) rng()%a
#define ALL(a) a.begin(),a.end()
#define check_min(a,b) a=min(a,b)
#define check_max(a,b) a=max(a,b)
using namespace std;
const int INF=0x3f3f3f3f;
typedef pair<int,int> mp;
int fa[1000000+20];
int root(int x){
    return fa[x]=(fa[x]==x? x:root(fa[x]));
}
int id[1000000+20];
vector<int> v[1000000+20];
int pre[1000000+20];
bool vis[1000000+20];
int mn[1000000+20];
int main(){
    // freopen("c.in","r",stdin);
    // freopen("c.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    rb(i,0,n) fa[i]=i;
    vector<mp> seg;
    int m;
    cin>>m;
    rb(i,1,m){
        int l,r;
        cin>>l>>r;
        int A,B;
        A=root(r);
        B=root(l-1);
        fa[max(A,B)]=min(A,B);
    }
    rb(i,0,n) mn[i]=INF;
    rb(i,0,n) check_min(mn[root(i)],i);
    rb(i,0,n) id[i]=mn[root(i)],v[id[i]].PB(i);
    int tmp=0;
    unordered_set<int> se;
    for(int i=0;tmp!=n+1;i--){
        if(i==0){
            tmp+=v[0].size();
            for(auto it:v[0]){
                vis[it]=1;
                se.insert(it);
                pre[it]=0;
            }
            assert(!se.empty());
            continue;
        }
        unordered_set<int> nw;
        for(auto ite=se.begin();ite!=se.end();ite++){
            if(*ite!=0&&!vis[*ite-1]){
                nw.insert(id[*ite-1]);
            }
            if(*ite!=n&&!vis[*ite+1]){
                nw.insert(id[*ite+1]);
            }
        }
            assert(!nw.empty());
        se.clear();
        for(auto ite=nw.begin();ite!=nw.end();ite++){
            auto Tmp=v[*ite];
            tmp+=Tmp.size();
            for(auto it:Tmp){
                vis[it]=1;
                se.insert(it);
                pre[it]=i;
            }
        }
    }
    rb(i,1,n){
        if(pre[i]==pre[i-1]-1) cout<<0;
        else cout<<1;
    }
    return 0;
}

Submission Info

Submission Time
Task C - 01 Balanced
User Gary
Language C++ (GCC 9.2.1)
Score 0
Code Size 2385 Byte
Status TLE
Exec Time 5516 ms
Memory 85604 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 900
Status
AC × 3
AC × 31
TLE × 1
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt
All 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 29 ms 27056 KiB
00-sample-002.txt AC 22 ms 26956 KiB
00-sample-003.txt AC 22 ms 27108 KiB
01-001.txt AC 28 ms 27068 KiB
01-002.txt AC 590 ms 71220 KiB
01-003.txt AC 384 ms 61224 KiB
01-004.txt AC 58 ms 31640 KiB
01-005.txt AC 342 ms 58232 KiB
01-006.txt AC 356 ms 59132 KiB
01-007.txt AC 730 ms 84028 KiB
01-008.txt AC 762 ms 85156 KiB
01-009.txt AC 790 ms 83936 KiB
01-010.txt AC 711 ms 85180 KiB
01-011.txt AC 708 ms 85180 KiB
01-012.txt AC 698 ms 85160 KiB
01-013.txt AC 710 ms 84244 KiB
01-014.txt AC 702 ms 83416 KiB
01-015.txt AC 754 ms 83380 KiB
01-016.txt AC 703 ms 83432 KiB
01-017.txt AC 262 ms 68500 KiB
01-018.txt AC 258 ms 68500 KiB
01-019.txt AC 262 ms 68632 KiB
01-020.txt AC 260 ms 68660 KiB
01-021.txt AC 262 ms 68628 KiB
01-022.txt AC 254 ms 68628 KiB
01-023.txt AC 268 ms 68704 KiB
01-024.txt AC 256 ms 68500 KiB
01-025.txt AC 263 ms 68632 KiB
01-026.txt AC 258 ms 68560 KiB
01-027.txt TLE 5516 ms 82416 KiB
01-028.txt AC 255 ms 85604 KiB
01-029.txt AC 224 ms 68708 KiB