이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "icc.h"
using namespace std;
const int nmax=100+42;
/*
void setRoad(int a,int b)
{
cout<<"set "<<a<<" "<<b<<endl;
}
int query(int size_a,int size_b,int a[],int b[])
{
cout<<"size_a "<<size_a<<" a ";for(int i=0;i<size_a;i++)cout<<a[i]<<" ";cout<<endl;
cout<<"size_b "<<size_b<<" b ";for(int i=0;i<size_b;i++)cout<<b[i]<<" ";cout<<endl;
int ret;
cin>>ret;
return ret;
}
*/
int size_a,size_b,a[nmax],b[nmax];
int n;
int parent[nmax];
int root(int node)
{
if(node==parent[node])return parent[node];
parent[node]=root(parent[node]);
return parent[node];
}
int my_ask(vector<int> lhs,vector<int> rhs)
{
size_a=lhs.size();
for(int i=0;i<size_a;i++)
a[i]=lhs[i];
size_b=rhs.size();
for(int i=0;i<size_b;i++)
b[i]=rhs[i];
return query(size_a,size_b,a,b);
}
void run(int N)
{
n=N;
for(int i=1;i<=n;i++)parent[i]=i;
for(int i=1;i<n;i++)
{
for(int u=1;u<=n;u++)
for(int v=u+1;v<=n;v++)
if(root(u)!=root(v))
{
if(my_ask({u},{v}))
{
setRoad(u,v);
parent[root(u)]=root(v);
u=n;
v=n;
}
}
}
}
/*
int main()
{
run(4);
}
*/
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |