#include <iostream>
#include <vector>
#include "meetings.h"
using namespace std;
vector<pair<int,int> > fun(int n, vector<int> tab)
{
    if(tab.size()==0)
        return {};
    vector<vector<int> > pod;
    vector<int> pom, zap;
    vector<pair<int,int> > odp, pom2;
    int i=0;
    while(tab.size()>0)
    {
        pod.push_back({});
        pod[i].push_back(tab[0]);
        for(int a=1; a<tab.size(); a++){
            if(Query(n,tab[0],tab[a])==n)
                pom.push_back(tab[a]);
            else
                pod[i].push_back(tab[a]);
        }
        tab=pom;
        pom.clear();
        i++;
    }
    int p;
    for(int a=0; a<pod.size(); a++)
    {
        p=pod[a][0];
        for(int i=1; i<pod[a].size(); i++)
            if(p!=pod[a][i])
                p=Query(n,p,pod[a][i]);
        odp.push_back({n,p});
        zap.push_back(p);
    }
    for(int a=0; a<zap.size(); a++)
    {
        for(int i=0; i<pod[a].size(); i++)
            if(pod[a][i]!=zap[a])
                pom.push_back(pod[a][i]);
        pom2=fun(zap[a],pom);
        for(int i=0; i<pom2.size(); i++)
            odp.push_back(pom2[i]);
        pom.clear();pom2.clear();
    }
    return odp;
}
void Solve(int n)
{
    vector<pair<int,int> > ret;
    vector<int> p;
    for(int a=1; a<n; a++)
        p.push_back(a);
    ret=fun(0,p);
    for(int a=0; a<ret.size(); a++)
    {
        if(ret[a].first>ret[a].second)
            swap(ret[a].first,ret[a].second);
        Bridge(ret[a].first,ret[a].second);
    }
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |