Submission #1086936

#TimeUsernameProblemLanguageResultExecution timeMemory
1086936MateiKing80Cave (IOI13_cave)C++14
0 / 100
265 ms860 KiB
#include "cave.h"
#include <bits/stdc++.h>

using namespace std;

using pii = pair<int, int>;
#define fr first
#define sc second
/*
vector<int> ss, dd;
int n;

void init()
{
    cin >> n;
    for(int i = 0; i < n; i ++)
        cin >> ss[i];
    for(int i = 0; i < n; i ++)
        cin >> dd[i];
}

int tryCombination(vector<int> s)
{
    vector<int> bn(n);
    for(int i = 0; i < n; i ++)

}*/

int ntc(vector<int> v)
{
    int mad[5000], sus = 0;
    for(auto i : v)
        mad[sus ++] = i;
    return tryCombination(mad);
}

void nan(vector<int> v, vector<int> w)
{
    int mad[5000], sus = 0;
    for(auto i : v)
        mad[sus ++] = i;
    sus = 0;
    int ultra[5000];
    for(auto i : w)
        ultra[sus ++] = i;
    answer(mad, ultra);
}

void exploreCave(int n)
{
    //init();
    const int lg = (int)log2(n);
    vector<pii> ans;
    vector<bool> f(n, false);
    for(int i = 0; i < n; i ++)
    {
        vector<int> sus;
        for(int j = 0; j < n; j ++)
            sus.push_back(1);
        for(auto j : ans)
            sus[j.fr] = j.sc;
        bool turip = (ntc(sus) == i);
        int pas = 1 << lg, pos = -1;
        while(pas)
        {
            vector<int> di(n, 1);
            for(int j = 0; j <= max(n - 1, pos + pas); j ++)
                di[j] = 0;
            for(auto j : ans)
                di[j.fr] = j.sc;
            bool nturip = (ntc(sus) == i);
            if(nturip == turip)
                pos += pas;
            pas /= 2;
        }
        pos ++;
        if(turip)
            ans.push_back({pos, 0});
        else
            ans.push_back({pos, 1});
    }
    vector<int> s(n), d(n);
    int sus = 0;
    for(auto i : ans)
        s[i.fr] = i.sc, d[sus ++] = i.fr;
    nan(s, d);
}
#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...