#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=2; a<=n; a++)
p.push_back(a);
ret=fun(1,p);
for(int a=0; a<ret.size(); a++)
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... |