제출 #1257479

#제출 시각아이디문제언어결과실행 시간메모리
1257479dead0neIsland Hopping (JOI24_island)C++20
100 / 100
3 ms428 KiB
#include "island.h"
#include <bits/stdc++.h>
using namespace std;

int cnt;
map<pair<int, int>, int> m;
void ae(int x, int y){
  if(x>y) swap(x,y);
  if(m[{x,y}]==0){
    m[{x,y}]=1;
    answer(x,y);
    cnt++;
  }
}

void solve(int N, int L) {
  int fir[N+1]{};
  int cur=N;
  cnt=0;
  set<int> s;
  while(cnt<N-1){
    for(int i=1; i<N; i++){
      int las=fir[cur];
      if(!(i==1 && fir[cur]!=0)) las=query(cur, i);
      if(las>cur) break;
      if(i==1 && fir[cur]==0){
        fir[cur]=las;
        ae(cur, las);
      }
      if(!fir[las]){
        fir[las]=query(las, 1);
        ae(las, fir[las]);
      }
      if(fir[las]==cur) continue;
      if(s.find(las)!=s.end()) break;
      ae(cur, las);
      s.insert(fir[las]);
    }
    s.clear();
    cur--;
  }
}
#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...