제출 #1256998

#제출 시각아이디문제언어결과실행 시간메모리
1256998noyancanturkIsland Hopping (JOI24_island)C++20
2 / 100
2 ms408 KiB
#include "island.h"

#include<bits/stdc++.h>
using namespace std;

void solve(int n, int L) {
  int isroot[n+1]{},parent[n+1]{};
  for(int i=1;i<=n;i++)parent[i]=i;
  for(int i=2;i<=n;i++){
    int res=query(i,1);
    if(res<i){
      parent[i]=res;
      answer(i,res);
    }else isroot[i]=1;
  }
  for(int i=2;i<=n;i++){
    if(isroot[i])continue;
    int banned[n+1]{};
    banned[i]=banned[parent[i]]=banned[parent[parent[i]]]=1;
    for(int k=2;k<=n-1;k++){
      int res=query(i,k);
      if(res<i&&!banned[res]&&!banned[parent[res]]){
        banned[res]=banned[parent[res]]=1;
        answer(i,res);
      }else break;
    }
  }
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...