| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1171453 | danglayloi1 | Meetings (JOI19_meetings) | C++20 | 0 ms | 0 KiB | 
#include "meetings.h"
#include <bits/stdc++.h>
#define ii pair<int, int>
#define fi first
#define se second
#define inf 0x3f3f3f3f3f3f3f3f
using namespace std;
using ll = long long;
const ll mod=1e9+7;
const int nx=2e3+5;
// void Bridge(int u, int v)
// {
//     cout<<"haha"<<u<<' '<<v<<'\n';
// }
// int query(int u, int v, int w)
// {
//     cout<<u<<' '<<v<<' '<<w<<'\n';
//     int x;
//     cin>>x;
//     return x;
// }
void dfs(int p, vector<int> ver)
{
    if(ver.size()==2)
    {
        Bridge(ver[0], ver[1]);
        return;
    }
    int u=(ver[0]==p)?ver[1]:ver[0];
    int mx=0;
    for(int i:ver) mx=max(mx, i);
    for(int i = 0; i < ver.size(); i++)
        if(ver[i]==u)
            ver.erase(ver.begin()+i);
    bool vis[nx];
    for(int i = 0; i <= mx; i++)
        vis[i]=0;
    vector<int> tmp;
    while(true)
    {
        int v=-1;
        for(int i:ver)
        {
            if(!vis[i])
            {
                v=i;
                vis[v]=1;
                break;
            }
        }
        if(v==-1) break;
        tmp.clear();
        tmp.emplace_back(v);
        for(int i:ver)
        {
            if(vis[i]) continue;
            if(Query(v, i, u)!=u)
                tmp.emplace_back(i), vis[i]=1;
        }
        tmp.emplace_back(u);
        dfs(u, tmp);
    }
}
void solve(int n)
{
    vector<int> res;
    res.clear();
    for(int i = 0; i < n; i++)
        res.emplace_back(i);
    dfs(-1, res);
}
// int main()
// {
//     solve(5);
// }
