Submission #223449

#TimeUsernameProblemLanguageResultExecution timeMemory
223449MKopchevICC (CEOI16_icc)C++14
7 / 100
518 ms632 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...