답안 #152948

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
152948 2019-09-10T16:26:58 Z Ruxandra985 popa (BOI18_popa) C++14
0 / 100
21 ms 500 KB
#include <cstdio>
#include "popa.h"
 
/// cum adc runtime:(
int solve (int N , int *Left , int *Right){ /// return root
    int i,lant,root,bgn,ed,eda;
    int tt[1010];
    for (i=0;i<N;i++){
        tt[i] = Left[i] = Right[i] = -1; /// reset all
    }
    /// separam in lanturi
    lant = 1;
    bgn = ed = 0;
    eda = -1; /// cel de care poti lipi
    for (i=1;i<N;i++){ /// n - 1
        if (query(bgn , i , i , i)){ /// i apartine lantului curent
            ed = i;
            tt[i-1] = i;
        }
        else { /// incepem alt lant
            if ( lant != 1 ){ /// vedem cum il unim
                if (query(eda , ed , eda , eda)){
                    tt[ed] = eda; /// unesti intervalele astea
                }
                else { /// daca nu pot cu aia , il fac pe ed[i] radacina
                    tt[root] = ed;
                    root = ed;
                    ed--;
                }
            }
            else root = ed;
            lant++;
            eda = ed;
            bgn = ed = i;
        }
    }

    if ( lant != 1 ){ /// vedem cum il unim
        if (query(eda , ed , eda , eda)){
            tt[ed] = eda; /// unesti intervalele astea
        }
        else { /// daca nu pot cu aia , il fac pe ed[i] radacina
            tt[root] = ed;
            root = ed;
            ed--;
        }
    }
    else root = ed;

    /// uniunile dintre lanturi se fac clar la nivelul lui ed
    /// pentru ca au indici consecutivi in s

    for (i=0;i<N;i++){
        if (i!=root){
            if (Left[tt[i]]==-1)
                Left[tt[i]] = i;
            else Right[tt[i]] = i;
        }
    }


    return root;
}
# 결과 실행 시간 메모리 Grader output
1 Runtime error 4 ms 428 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 21 ms 420 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 17 ms 500 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -