제출 #1327113

#제출 시각아이디문제언어결과실행 시간메모리
1327113SmuggingSpunSpeedrun (RMI21_speedrun)C++20
21 / 100
15 ms596 KiB
#include "speedrun.h"
#include<bits/stdc++.h>
using namespace std;
namespace sub1{
  void init(int n, int a[], int b[]){
    setHintLen(n);
    for(int i = 1; i < n; i++){
      setHint(a[i], b[i], 1);
      setHint(b[i], a[i], 1);
    }
  }
  void solve(int n, int start){
    vector<vector<int>>g(n + 1);
    function<void(int, int)>dfs;
    dfs = [&] (int s, int p){
      if(g[s].empty()){
        for(int i = 1; i <= n; i++){
          if(getHint(i)){
            g[s].push_back(i);
          }
        }
      }
      for(int& d : g[s]){
        if(d != p){
          goTo(d);
          dfs(d, s);
          goTo(s);
        }
      }
    };
    dfs(start, -1);
  }
}
namespace sub2{
  void init(int n, int a[], int b[]){
    
  }
  void solve(int n, int start){

  }
}
namespace sub3{
  void init(int n, int a[], int b[]){
    
  }
  void solve(int n, int start){

  }
}
namespace sub45{
  void init(int n, int a[], int b[]){
    
  }
  void solve(int n, int start){

  }
}
void assignHints(int subtask, int n, int a[], int b[]){
  if(subtask == 1 || true){
    sub1::init(n, a, b);
  }
  else if(subtask == 2){
    sub2::init(n, a, b);
  }
  else if(subtask == 3){
    sub3::init(n, a, b);
  }
  else{
    sub45::init(n, a, b);
  }
}
void speedrun(int subtask, int n, int start){
  if(subtask == 1 || true){
    sub1::solve(n, start);
  }
  else if(subtask == 2){
    sub2::solve(n, start);
  }
  else if(subtask == 3){
    sub3::solve(n, start);
  }
  else{
    sub45::solve(n, start);
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...