Submission #765374

# Submission time Handle Problem Language Result Execution time Memory
765374 2023-06-24T11:43:24 Z vjudge1 Speedrun (RMI21_speedrun) C++17
0 / 100
14 ms 23776 KB
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <bitset>
#include <cmath>
#include <queue>
#include <map>
#include <set>
#include "speedrun.h"

// Akhmet Issa

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define ent "\n"

const int maxn = 1e6 + 100;
const ll INF = (ll)2e18;
const int inf = (ll)2e9;
const int maxl = 20;
const int MOD = 1e9 + 7;

vector<int> g[maxn];
vector<int> ord;

void calc(int v, int pr){
    ord.push_back(v);
    setHintLen(20);
    for(int to: g[v]){
        if(to != pr){
            for(int j = 0; j < 10; j++){
                if(v & (1<<j)) setHint(to, j + 11, 1);
            }
            calc(to, v);
        }
    }
}

void assignHints(int subtask, int n, int A [], int B []){
    for(int i = 1; i < n; i++){
        g[A[i]].push_back(B[i]);
        g[B[i]].push_back(A[i]);
    }
    calc(1, 0);
    for(int i = 0; i < n - 1; i++){
        for(int j = 0; j < 10; j++){
            if(ord[i+1] & (1<<j)) setHint(ord[i], j + 1, 1);
        }
    }
}

int get(int p){
    int ans = 0;
    for(int i = 0; i < 10; i++){
        if(getHint(p + i)) ans |= (1<<i);
    }
    return ans;
}

void dfs(int v, int to){
    if(!to) return;
    if(goTo(to)){
        int nxt = get(1);
        dfs(to, nxt);
    } else{
        int pr = get(11);
        dfs(pr, to);
    }
}

void speedrun(int subtask, int n, int start){
    while(start != 1){
        start = get(11);
        goTo(start);
    }
    dfs(1, get(1));
}
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 23760 KB setHintLen must not be called more than once
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 23760 KB setHintLen must not be called more than once
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 23760 KB setHintLen must not be called more than once
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 11 ms 23776 KB setHintLen must not be called more than once
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 14 ms 23760 KB setHintLen must not be called more than once
2 Halted 0 ms 0 KB -