제출 #1307193

#제출 시각아이디문제언어결과실행 시간메모리
1307193vako_pMeetings (JOI19_meetings)C++20
29 / 100
882 ms2324 KiB
#include "meetings.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define sd second

const int mxN = 2005;
static ll n; 
random_device rd;
mt19937_64 gen(rd());

void f(vector<ll> v){
  if(v.size() <= 1) return;
  uniform_int_distribution<ll> dis(0, v.size() - 1);
  ll at = v[dis(gen)];
  vector<vector<ll>> vv;
  vector<ll> val;
  for(int i = 0; i < v.size(); i++){
    ll it = v[i];
    if(at == it) continue;
    bool ok = true;
    for(int j = 0; j < val.size(); j++){
      if(val[j] == it){
        vv[j].pb(it);
        ok = false;
        break;
      }
      ll ans = Query(at, val[j], it);
      if(ans != at){
        vv[j].pb(it);
        if(ans != val[j]) val[j] = ans;
        ok = false;
        break;
      }
    }
    if(ok){
      val.pb(it);
      vv.pb({it});
    }
  }
  for(int i = 0; i < vv.size(); i++){
    Bridge(min(val[i], at), max(val[i], at));
    f(vv[i]);
  }
}

void Solve(int N) {
  n = N;
  vector<ll> v(n);
  iota(v.begin(), v.end(), 0);
  f(v);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...