제출 #1224285

#제출 시각아이디문제언어결과실행 시간메모리
1224285poatMeetings (JOI19_meetings)C++17
0 / 100
17 ms468 KiB
#include "meetings.h"
#include <bits/stdc++.h>
using namespace std;

mt19937 rng(time(0));

void solve(vector<int> vec)
{
  if(vec.size() == 1)
    return;
  else if(vec.size() == 2)
  {
    if(vec[0] > vec[1])
      swap(vec[0], vec[1]);

    Bridge(vec[0], vec[1]);
    return;
  }

  shuffle(vec.begin(), vec.end(), rng);
  
  int x = vec[0], y = vec[1];
  vector<int> a = {x}, b = {y};  
  for(int i = 2; i < vec.size(); i++)
  {
    int z = Query(x, y, vec[i]);
    if(z == vec[i])
    {
       b.push_back(vec[i]);
       y = z; 
    }
    else if(z == x)
      a.push_back(vec[i]);
    else if(z == y)
      b.push_back(vec[i]);
    else 
    {
      y = z;
      b.push_back(z);
      b.push_back(vec[i]);
    }
  }

  Bridge(min(x, y), max(x, y));

  solve(a);
  solve(b);

}

void Solve(int N) 
{
  vector<int> vec;
  for(int i = 0; i < N; i++)
    vec.push_back(i);

  solve(vec);

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...