답안 #855543

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
855543 2023-10-01T11:59:49 Z lolismek Speedrun (RMI21_speedrun) C++14
8 / 100
113 ms 1916 KB
#include "speedrun.h"

using namespace std;

#include <vector>
#include <set>
#include <iostream>

const int NMAX = 1001;

vector <int> adj[NMAX + 1];

int dfsTime = 0;

int par[NMAX + 1];
int lin[NMAX + 1];

void dfs(int node, int parent){
    par[node] = parent;
    lin[++dfsTime] = node;
    for(int child : adj[node]){
        if(child != parent){
            dfs(child, node);
        }
    }
}

void assignHints(int subtask, int N, int A[], int B[]){
    for(int i = 1; i <= N - 1; i++){
        adj[A[i]].push_back(B[i]);
        adj[B[i]].push_back(A[i]);
    }

    setHintLen(20);
    dfs(1, 0);

    for(int i = 1; i <= N; i++){
        for(int j = 0; j < 10; j++){
            setHint(lin[i], j + 1, par[lin[i]] & (1 << j));
            setHint(lin[i], j + 1 + 10, lin[i + 1] & (1 << j));
        }
    }
}

set <int> S;
bool viz[NMAX + 1];

void speedrun(int subtask, int N, int start){
    int node = start;
    S.insert(node);

    int toTry = 0;
    while((int)S.size() < N){
        //cout << ">> " << node << endl;
        viz[node] = true;

        int p = 0, x = 0;
        for(int i = 1; i <= 10; i++){
            p += (1 << (i - 1)) * getHint(i);
            x += (1 << (i - 1)) * getHint(i + 10);
        }

        if(toTry == 0){
            toTry = x;
        }

        if(!viz[toTry] && toTry != 0 && goTo(toTry)){
            node = toTry;
            toTry = 0;
            S.insert(node);
        }else{
            node = p;
            if(node == 0){
                return;
            }
            goTo(node);
            S.insert(node);
        }
    }
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 101 ms 884 KB Solution didn't visit every node
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 111 ms 1148 KB Output is correct
2 Correct 113 ms 1908 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 92 ms 1148 KB Solution didn't visit every node
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 105 ms 1916 KB Solution didn't visit every node
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 103 ms 1144 KB Solution didn't visit every node
2 Halted 0 ms 0 KB -