QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#109043#6529. Alice, Bob and CircuitQingyu100 ✓3288ms1416524kbC++1421.4kb2023-05-27 10:30:582023-09-11 04:09:44

Judging History

你现在查看的是最新测评结果

  • [2023-09-11 04:09:44]
  • 管理员手动重测该提交记录
  • 测评结果:100
  • 用时:3288ms
  • 内存:1416524kb
  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-05-27 10:52:48]
  • 评测
  • 测评结果:100
  • 用时:5151ms
  • 内存:1414152kb
  • [2023-05-27 10:30:58]
  • 提交

answer

#include "abc.h"
#include <bits/stdc++.h>
using namespace std;

const int OP_ZERO    = 0;  // f(OP_ZERO,    x0, x1) = 0
const int OP_NOR     = 1;  // f(OP_NOR,     x0, x1) = !(x0 || x1)
const int OP_GREATER = 2;  // f(OP_GREATER, x0, x1) = (x0 > x1)
const int OP_NOT_X1  = 3;  // f(OP_NOT_X1,  x0, x1) = !x1
const int OP_LESS    = 4;  // f(OP_LESS,    x0, x1) = (x0 < x1)
const int OP_NOT_X0  = 5;  // f(OP_NOT_X0,  x0, x1) = !x0
const int OP_XOR     = 6;  // f(OP_XOR,     x0, x1) = (x0 ^ x1)
const int OP_NAND    = 7;  // f(OP_NAND,    x0, x1) = !(x0 && x1)
const int OP_AND     = 8;  // f(OP_AND,     x0, x1) = (x0 && x1)
const int OP_EQUAL   = 9;  // f(OP_EQUAL,   x0, x1) = (x0 == x1)
const int OP_X0      = 10; // f(OP_X0,      x0, x1) = x0
const int OP_GEQ     = 11; // f(OP_GEQ,     x0, x1) = (x0 >= x1)
const int OP_X1      = 12; // f(OP_X1,      x0, x1) = x1
const int OP_LEQ     = 13; // f(OP_LEQ,     x0, x1) = (x0 <= x1)
const int OP_OR      = 14; // f(OP_OR,      x0, x1) = (x0 || x1)
const int OP_ONE     = 15; // f(OP_ONE,     x0, x1) = 1

static int l, la, lb;
static int* operations;
static int (*operands)[2];
static int (*outputs)[16];

int makeGate(int op, int x0, int x1) {
    operations[l] = op;
    operands[l][0] = x0;
    operands[l][1] = x1;
    return l++;
}

struct Gate;
using GatePtr = shared_ptr<Gate>;

struct Gate {
    int id;
    Gate() : id(-1) { }
    virtual ~Gate() { }
    virtual int materialize() = 0;
};

struct InputGate : Gate {
    int from, index;
    InputGate(int from, int index) : from(from), index(index) { }
    int materialize() override {
        if (id != -1)
            return id;
        return id = from * la + index;
    }
};

struct ComputeGate : Gate {
    GatePtr inputs[2];
    int op;
    ComputeGate(const GatePtr& a, const GatePtr& b, int op) : op(op) {
        inputs[0] = a;
        inputs[1] = b;
    }
    int materialize() override {
        if (id != -1)
            return id;
        return id = makeGate(op, inputs[0]->materialize(), inputs[1]->materialize());
    }
};

struct NotGate : Gate {
    GatePtr input;
    NotGate(const GatePtr& input) : input(input) { }
    int materialize() override {
        if (id != -1)
            return id;
        return id = makeGate(OP_NOT_X0, input->materialize(), 0);
    }
};

struct ConstGate : Gate {
    bool value;
    ConstGate(bool value) : value(value) { }
    int materialize() override {
        if (id != -1)
            return id;
        return id = makeGate(value * OP_ONE, 0, 0);
    }
};

struct UndefinedGate : Gate {
    int materialize() override {
        if (id != -1)
            return id;
        return id = makeGate(OP_ZERO, 0, 0);
    }
};

static int dual(int op) {
    return op & 9 | (op & 2) << 1 | (op & 4) >> 1;
}

static GatePtr undefinedGate() {
    static GatePtr undefined = make_shared<UndefinedGate>();
    return undefined;
}

static GatePtr constGate(bool value) {
    static GatePtr consts[2] = { make_shared<ConstGate>(false), make_shared<ConstGate>(true) };
    return consts[value];
}

static GatePtr notGate(const GatePtr& input) {
    if (auto c = dynamic_cast<ConstGate*>(input.get()))
        return constGate(!c->value);
    if (auto u = dynamic_cast<UndefinedGate*>(input.get()))
        return undefinedGate();
    if (auto n = dynamic_cast<NotGate*>(input.get()))
        return n->input;
    return make_shared<NotGate>(input);
}

static map<tuple<GatePtr, GatePtr, int>, GatePtr> computeGateCache;
static GatePtr computeGate(const GatePtr& a, const GatePtr& b, int op) {
    /*if (op == OP_ZERO || op == OP_ONE)
        return constGate(op == OP_ONE);
    if (op == OP_X0)
        return a;
    if (op == OP_X1)
        return b;
    if (op == OP_NOT_X0)
        return notGate(a);
    if (op == OP_NOT_X1)
        return notGate(b);
    
    if (NotGate* na = dynamic_cast<NotGate*>(a.get()))
        return computeGate(b, a, dual(op));
    if (NotGate* nb = dynamic_cast<NotGate*>(b.get()))
        return computeGate(a, nb->input, op >> 2 | (op & 3) << 2);

    UndefinedGate* ua = dynamic_cast<UndefinedGate*>(a.get()), *ub = dynamic_cast<UndefinedGate*>(b.get());
    if (ua && ub)
        return undefinedGate();
    if (ua)
        return computeGate(b, a, dual(op));
    if (ub) {
        int cnt = __builtin_popcount(op);
        if (cnt >= 3)
            return constGate(1);
        if (cnt <= 1)
            return constGate(0);
        return a;
    }

    ConstGate* ca = dynamic_cast<ConstGate*>(a.get()), *cb = dynamic_cast<ConstGate*>(b.get());
    if (ca && cb)
        return constGate(op >> (ca->value | cb->value << 1) & 1);
    if (ca)
        return computeGate(b, a, dual(op));
    if (cb) {
        int x = op >> (cb->value << 1) & 3;
        if (x == 1)
            return notGate(a);
        if (x == 2)
            return a;
        return constGate(x == 3);
    }*/

    /*auto& result = computeGateCache[make_tuple(a, b, op)];
    if (result)
        return result;
    result = make_shared<ComputeGate>(a, b, op);
    return result;*/
    return make_shared<ComputeGate>(a, b, op);
}

static GatePtr inputGate(int from, int index) {
    return make_shared<InputGate>(from, index);
}

struct Bit {
    GatePtr gate;
    Bit() : gate(undefinedGate()) { }
    explicit Bit(bool value) : gate(constGate(value)) { }
    Bit(const GatePtr& gate) : gate(gate) { }
};
static Bit operator&(const Bit& a, const Bit& b) {
    return computeGate(a.gate, b.gate, OP_AND);
}
static Bit operator|(const Bit& a, const Bit& b) {
    return computeGate(a.gate, b.gate, OP_OR);
}
static Bit operator^(const Bit& a, const Bit& b) {
    return computeGate(a.gate, b.gate, OP_XOR);
}
static Bit& operator^=(Bit& a, const Bit& b) {
    a = a ^ b;
    return a;
}
static Bit operator~(const Bit& a) {
    return notGate(a.gate);
}
static Bit operator==(const Bit& a, const Bit& b) {
    return computeGate(a.gate, b.gate, OP_EQUAL);
}
static Bit operator!=(const Bit& a, const Bit& b) {
    return computeGate(a.gate, b.gate, OP_XOR);
}
static Bit operator>=(const Bit& a, const Bit& b) {
    return computeGate(a.gate, b.gate, OP_GEQ);
}
static Bit operator<=(const Bit& a, const Bit& b) {
    return computeGate(a.gate, b.gate, OP_LEQ);
}
static Bit operator>(const Bit& a, const Bit& b) {
    return computeGate(a.gate, b.gate, OP_GREATER);
}
static Bit operator<(const Bit& a, const Bit& b) {
    return computeGate(a.gate, b.gate, OP_LESS);
}

struct Integer : vector<Bit> {
    using vector<Bit>::vector;
};
static Integer operator&(const Integer& a, const Integer& b) {
    assert(a.size() == b.size());
    Integer result;
    for (int i = 0; i < a.size(); i++)
        result.push_back(a[i] & b[i]);
    return result;
}
static Integer operator|(const Integer& a, const Integer& b) {
    assert(a.size() == b.size());
    Integer result;
    for (int i = 0; i < a.size(); i++)
        result.push_back(a[i] | b[i]);
    return result;
}
static Integer operator^(const Integer& a, const Integer& b) {
    assert(a.size() == b.size());
    Integer result;
    for (int i = 0; i < a.size(); i++)
        result.push_back(a[i] ^ b[i]);
    return result;
}
static Integer operator~(const Integer& a) {
    Integer result;
    for (int i = 0; i < a.size(); i++)
        result.push_back(~a[i]);
    return result;
}
static Integer operator+(const Integer& a, const Integer& b) {
    assert(a.size() == b.size());
    Integer result;
    Bit carry(false);
    for (int i = 0; i < a.size(); i++) {
        Bit x = a[i] ^ b[i];
        result.push_back(x ^ carry);
        carry = (a[i] & b[i]) | (x & carry);
    }
    return result;
}
static Integer& operator+=(Integer& a, const Integer& b) {
    return a = a + b;
}
static Bit operator==(const Integer& a, const Integer& b) {
    assert(a.size() == b.size());
    Bit result(true);
    for (int i = 0; i < a.size(); i++)
        result = result & (a[i] == b[i]);
    return result;
}
static Bit operator!=(const Integer& a, const Integer& b) {
    return ~(a == b);
}
static Bit operator<(const Integer& a, const Integer& b) {
    assert(a.size() == b.size());
    Bit result(false);
    for (int i = 0; i < a.size(); i++)
        result = (a[i] < b[i]) | ((a[i] == b[i]) & result);
    return result;
}
static Bit operator>(const Integer& a, const Integer& b) {
    return b < a;
}
static Bit operator<=(const Integer& a, const Integer& b) {
    return ~(a > b);
}
static Bit operator>=(const Integer& a, const Integer& b) {
    return ~(a < b);
}
static Bit inputBit(int from, int index) {
    return Bit(inputGate(from, index));
}
static Integer inputInteger(int from, int index, int size) {
    Integer result;
    for (int i = 0; i < size; i++)
        result.push_back(inputBit(from, index + i));
    return result;
}
static Integer zeroInteger(int size) {
    Integer result;
    for (int i = 0; i < size; i++)
        result.push_back(Bit(false));
    return result;
}
static Integer undefinedInteger(int size) {
    Integer result;
    for (int i = 0; i < size; i++)
        result.push_back(Bit());
    return result;
}
static int materialize(const Bit& bit) {
    return bit.gate->materialize();
}
static vector<int> materialize(const Integer& integer) {
    vector<int> result;
    for (int i = 0; i < integer.size(); i++)
        result.push_back(materialize(integer[i]));
    return result;
}
static void condSwap(const Bit& cond, Bit& a, Bit& b) {
    Bit x = a ^ b;
    a ^= (x & cond);
    b ^= (x & cond);
}
static void condSwap(const Bit& cond, Integer& a, Integer& b) {
    assert(a.size() == b.size());
    for (int i = 0; i < a.size(); i++)
        condSwap(cond, a[i], b[i]);
}
static void condAssign(const Bit& cond, Integer& a, const Integer& b) {
    Integer bb = b;
    condSwap(cond, a, bb);
}

struct Element {
    Integer src;    // 19b
    Integer dst;    // 19b
    Integer weight; // 16b
    Bit isEdge;
    // 19+19+16+1=55b
};
static void condSwap(const Bit& cond, Element& a, Element& b) {
    condSwap(cond, a.src, b.src);
    condSwap(cond, a.dst, b.dst);
    condSwap(cond, a.weight, b.weight);
    condSwap(cond, a.isEdge, b.isEdge);
}

static int charsToInt(const char c[5]) {
    int result = 0;
    for (int i = 0; i < 4; i++) {
        if (!c[i])
            break;
        result = result * 26 + (c[i] - 'a') + 1;
    }
    return result;
}

static vector<bool> switchGenerateInv(vector<int> a) {
    // permute `a` to [0, 1, ..., n - 1]
    int n = a.size();
    // cout << "switchGenerateInv " << n << endl;
    if (n <= 1)
        return vector<bool>();
    
    vector<bool> upHold((n + 1) / 2), downHold((n + 1) / 2);
    if (n % 2) {
        // upHold[n / 2 * 2] = true;
        downHold[a[n - 1] >= n / 2 ? a[n - 1] - n / 2 : a[n - 1]] = true;
    }
    
    vector<bool> trace(n / 2), sure(n / 2);

    int cnt = n / 2;
    while (cnt > 0) {
        // cout << cnt << endl;
        bool ok = false;
        for (int i = 0; i < n / 2; i++)
            if (!sure[i]) {
                int col = a[i] >= n / 2 ? a[i] - n / 2 : a[i];
                int ncol = a[i + n / 2] >= n / 2 ? a[i + n / 2] - n / 2 : a[i + n / 2];
                if (upHold[col] || downHold[ncol]) {
                    downHold[col] = 1;
                    upHold[ncol] = 1;
                    trace[i] = 1;
                    swap(a[i], a[i + n / 2]);
                    sure[i] = 1;
                    ok = true;
                    --cnt;
                }
                else if (downHold[col] || upHold[ncol]) {
                    upHold[col] = 1;
                    downHold[ncol] = 1;
                    trace[i] = 0;
                    sure[i] = 1;
                    ok = true;
                    --cnt;
                }
            }
        if (ok)
            continue;
        for (int i = 0; i < n / 2; i++)
            if (!sure[i]) {
                int col = a[i] >= n / 2 ? a[i] - n / 2 : a[i];
                int ncol = a[i + n / 2] >= n / 2 ? a[i + n / 2] - n / 2 : a[i + n / 2];
                upHold[col] = 1;
                downHold[ncol] = 1;
                trace[i] = 0;
                sure[i] = 1;
                --cnt;
                break;
            }
    }
    // cout << cnt << endl;

    vector<int> a1(a.begin(), a.begin() + n / 2);
    vector<int> a2(a.begin() + n / 2, a.end());
    transform(a1.begin(), a1.end(), a1.begin(), [&](int x) { return x >= n / 2 ? x - n / 2 : x; });
    transform(a2.begin(), a2.end(), a2.begin(), [&](int x) { return x >= n / 2 ? x - n / 2 : x; });
    auto trace1 = switchGenerateInv(a1);
    auto trace2 = switchGenerateInv(a2);
    trace.insert(trace.end(), trace1.begin(), trace1.end());
    trace.insert(trace.end(), trace2.begin(), trace2.end());
    vector<bool> trace3(n / 2);
    for (int i = 0; i < n / 2; i++)
        if (a[i] >= n / 2)
            trace3[a[i] - n / 2] = 1;
    trace.insert(trace.end(), trace3.begin(), trace3.end());
    return trace;
}

static vector<bool> switchGenerate(const vector<int>& a) {
    // permute [0, 1, ..., n - 1] to `a`
    int n = a.size();
    vector<int> invA(n);
    for (int i = 0; i < n; i++)
        invA[a[i]] = i;
    return switchGenerateInv(invA);
}


// Alice
int // returns la
alice(
    /*  in */ const int n,
    /*  in */ const char names[][5],
    /*  in */ const unsigned short numbers[],
    /* out */ bool outputs[]
) {
    int l = 0;
    auto addBit = [&](bool bit) {
        outputs[l++] = bit;
    };
    auto addInteger = [&](int integer, int size) {
        for (int i = 0; i < size; i++)
            addBit(integer >> i & 1);
    };

    vector<tuple<int, unsigned short, int>> v;
    for (int i = 0; i < n; i++)
        v.push_back(make_tuple(charsToInt(names[i]), numbers[i], i));
    sort(v.begin(), v.end());

    for (int i = 0; i < n; i++) {
        addInteger(get<0>(v[i]), 19);
        addInteger(get<0>(v[i]), 19);
        addInteger(get<1>(v[i]), 16);
        addBit(false);
    }

    vector<int> p;
    for (int i = 0; i < n; i++)
        p.push_back(get<2>(v[i]));
    // for (int i = 0; i < n; i++)
    //     cout << p[i] << " ";
    // cout << endl;
    auto trace = switchGenerateInv(p);
    for (bool bit : trace)
        addBit(bit);

    return l;
}


// Bob
int // returns lb
bob(
    /*  in */ const int m,
    /*  in */ const char senders[][5],
    /*  in */ const char recipients[][5],
    /* out */ bool outputs[]
) {
    int l = 0;
    auto addBit = [&](bool bit) {
        outputs[l++] = bit;
    };
    auto addInteger = [&](int integer, int size) {
        for (int i = 0; i < size; i++)
            addBit(integer >> i & 1);
    };

    vector<pair<int, int>> v;
    for (int i = 0; i < m; i++)
        v.push_back(make_pair(charsToInt(senders[i]), charsToInt(recipients[i])));
    sort(v.begin(), v.end());

    vector<tuple<int, int, int>> w;
    for (int i = 0; i < m; i++)
        w.emplace_back(v[i].first, v[i].second, i);
    sort(w.begin(), w.end(), [](const tuple<int, int, int>& a, const tuple<int, int, int>& b) {
        return get<1>(a) < get<1>(b);
    });
    vector<int> p;
    for (int i = 0; i < m; i++)
        p.push_back(get<2>(w[i]));
    vector<bool> trace = switchGenerate(p);

    for (int i = 0; i < m; i++) {
        addInteger(v[i].first, 19);
        addInteger(v[i].second, 19);
        addInteger(0, 16);
        addBit(true);
    }

    for (bool bit : trace)
        addBit(bit);
    return l;
}

template <typename F>
static void buildMergeNetworkImpl(const F& yield, int i, int x, int j, int k, int r) {
    int step = r * 2, m = x - i, n = k - j;
    if (m <= 0 || n <= 0)
        return;
    if (m <= r && n <= r) {
        yield(i, j);
        return;
    }
    buildMergeNetworkImpl(yield, i, x, j, k, step);
    buildMergeNetworkImpl(yield, i + r, x, j + r, k, step);
    for (i += r, x -= r; i < x; i += step)
        yield(i, i + r);
    if (i < x + r) {
        yield(i, j);
        j += r;
    }
    for (k -= r; j < k; j += step)
        yield(j, j + r);
}

template <typename F>
static void buildMergeNetworkImpl(const F& yield, int l, int m, int r) {
    auto myYield = [&](int x, int y) {
        if (x >= l && x < r && y >= l && y < r)
            yield(x, y);
    };
    buildMergeNetworkImpl(myYield, l, m, m, r, 1);
}

static vector<pair<int, int>> buildMergeNetwork(int n1, int n2) {
    int mx = max(n1, n2), n = n1 + n2;
    vector<pair<int, int>> ret;
    buildMergeNetworkImpl([&](int x, int y) {
        if (x >= 0 && x < n && y >= 0 && y < n)
            ret.emplace_back(x, y);
    }, n1 - mx, n1, n1 + mx);
    return ret;
}

template <typename Less>
static void sortElements(vector<Element>& elements, Less less) {
    // TODO: optimize
    for (int i = 0; i < elements.size(); i++)
        for (int j = i + 1; j < elements.size(); j++)
            condSwap(less(elements[j], elements[i]), elements[i], elements[j]);
}

template <typename Less>
static vector<tuple<int, int, Bit>> mergeElements(vector<Element>& elements, int mid, Less less) {
    vector<pair<int, int>> network = buildMergeNetwork(mid, elements.size() - mid);
    vector<tuple<int, int, Bit>> ret;
    for (auto& p : network) {
        Bit cond = less(elements[p.second], elements[p.first]);
        condSwap(cond, elements[p.first], elements[p.second]);
        ret.emplace_back(p.first, p.second, cond);
    }
    return ret;
}

static void undoMergeElements(vector<Element>& elements, const vector<tuple<int, int, Bit>>& operations) {
    for (int i = operations.size() - 1; i >= 0; i--) {
        int x, y;
        Bit cond;
        tie(x, y, cond) = operations[i];
        condSwap(cond, elements[x], elements[y]);
    }
}

template <typename F>
static void buildSwitchNetworkImpl(const F& yield, int l, int r) {
    if (r - l <= 1)
        return;
    int m = (l + r) / 2;
    auto preOrPost = [&]() {
        for (int i = l, j = m; i < m; i++, j++)
            yield(i, j);
    };
    preOrPost();
    buildSwitchNetworkImpl(yield, l, m);
    buildSwitchNetworkImpl(yield, m, r);
    preOrPost();
}

static vector<pair<int, int>> buildSwitchNetwork(int n) {
    vector<pair<int, int>> ret;
    buildSwitchNetworkImpl([&](int x, int y) {
        if (x >= 0 && x < n && y >= 0 && y < n)
            ret.emplace_back(x, y);
    }, 0, n);
    return ret;
}

static void permuteElements(vector<Element>& elements, const vector<Bit>& trace) {
    vector<pair<int, int>> network = buildSwitchNetwork(elements.size());
    assert(network.size() == trace.size());
    for (int i = 0; i < network.size(); i++)
        condSwap(trace[i], elements[network[i].first], elements[network[i].second]);
}

static void undoPermuteElements(vector<Element>& elements, const vector<Bit>& trace) {
    vector<pair<int, int>> network = buildSwitchNetwork(elements.size());
    assert(network.size() == trace.size());
    for (int i = network.size() - 1; i >= 0; i--)
        condSwap(trace[i], elements[network[i].first], elements[network[i].second]);
}

// Circuit
int // returns l
circuit(
    /*  in */ const int la,
    /*  in */ const int lb,
    /* out */ int operations[],
    /* out */ int operands[][2],
    /* out */ int outputs[][16]
) {
    ::l = la + lb;
    ::la = la;
    ::lb = lb;
    ::operations = operations;
    ::operands = operands;
    ::outputs = outputs;

    // cout << la << ' ' << lb << endl;
    
    int n = 0;
    while (n * 55 + buildSwitchNetwork(n).size() < la)
        n++;
    int m = 0;
    while (m * 55 + buildSwitchNetwork(m).size() < lb)
        m++;
    // cout << n << ' ' << m << endl;
    assert(m * 55 + buildSwitchNetwork(m).size() == lb);
    int nm = n + m;
    vector<Element> elements;
    for (int i = 0; i < n; i++) {
        Element element;
        element.src = inputInteger(0, i * 55, 19);
        element.dst = inputInteger(0, i * 55 + 19, 19);
        element.weight = inputInteger(0, i * 55 + 38, 16);
        element.isEdge = inputBit(0, i * 55 + 54);
        elements.push_back(element);
    }
    for (int i = 0; i < m; i++) {
        Element element;
        element.src = inputInteger(1, i * 55, 19);
        element.dst = inputInteger(1, i * 55 + 19, 19);
        element.weight = inputInteger(1, i * 55 + 38, 16);
        element.isEdge = inputBit(1, i * 55 + 54);
        elements.push_back(element);
    }
    vector<Bit> perm;
    for (int i = 0; i < lb - m * 55; i++)
        perm.push_back(inputBit(1, m * 55 + i));
        
    vector<Bit> permA;
    for (int i = 0; i < la - n * 55; i++)
        permA.push_back(inputBit(0, n * 55 + i));

    auto trace = mergeElements(elements, n, [](const Element& a, const Element& b) {
        return (a.src < b.src) | ((a.src == b.src) & (a.isEdge < b.isEdge));
    });
    Integer w = undefinedInteger(16);
    for (int i = 0; i < nm; i++) {
        condAssign(~elements[i].isEdge, w, elements[i].weight);
        condAssign(elements[i].isEdge, elements[i].weight, w);
    }
    undoMergeElements(elements, trace);

    vector<Element> tmp;
    for (int i = 0; i < m; i++)
        tmp.push_back(elements[n + i]);
    permuteElements(tmp, perm);
    for (int i = 0; i < m; i++)
        elements[n + i] = tmp[i];
    trace = mergeElements(elements, n, [](const Element& a, const Element& b) {
        return (a.dst < b.dst) | ((a.dst == b.dst) & (a.isEdge > b.isEdge));
    });
    Integer zero = zeroInteger(16), sum = zero;
    for (int i = 0; i < nm; i++) {
        condAssign(elements[i].isEdge, sum, sum + elements[i].weight);
        condAssign(~elements[i].isEdge, elements[i].weight, sum);
        condAssign(~elements[i].isEdge, sum, zero);
    }
    undoMergeElements(elements, trace);

    tmp.clear();
    for (int i = 0; i < n; i++)
        tmp.push_back(elements[i]);
    permuteElements(tmp, permA);
    for (int i = 0; i < n; i++)
        elements[i] = tmp[i];

    for (int i = 0; i < n; i++) {
        vector<int> w = materialize(elements[i].weight);
        memcpy(outputs[i], w.data(), w.size() * sizeof(int));
    }

    return ::l;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 4
Accepted

Test #1:

score: 4
Accepted
time: 1ms
memory: 4064kb

Manager to Alice

Hello
1
m 24780
nzy 52939
tm 29958
iuj 64676
umeq 3500
shh 4229
y 12233
bq 63191
jzt 56793
t 48748
a 4365
pf 872
dlr 64046
vq 784
pzsc 44311
aaza 2656
y 55455
nru 19207
ic 59468
ztv 18363
ab 20822
ov 61699
yjyx 33953
yv 47740
zj 34266
wvlb 25668
xc 29514
ad 64127
gsd 13272
g 45279
hhlw 6505
ag 18873...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
1011000000000000000101100000000000000000110011000001100
1010110111100100000101011011110010000011010011011100110
1010100001000000000101010000100000000001100000101011100
0000111110011000000000011111001100000000100101001111110
1111010100100011101111101010010001110100110...

Manager to Bob

Hello
0





























































Bob to Manager

235fc77fd78da210d6b5a61b92603c4f





























































Manager to Circuit

Hello
55
0
1
m 24780
nzy 52939
tm 29958
iuj 64676
umeq 3500
shh 4229
y 12233
bq 63191
jzt 56793
t 48748
a 4365
pf 872
dlr 64046
vq 784
pzsc 44311
aaza 2656
y 55455
nru 19207
ic 59468
ztv 18363
ab 20822
ov 61699
yjyx 33953
yv 47740
zj 34266
wvlb 25668
xc 29514
ad 64127
gsd 13272
g 45279
hhlw 6505
ag ...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Subtask #2:

score: 4
Accepted

Test #2:

score: 4
Accepted
time: 1ms
memory: 3968kb

Manager to Alice

Hello
1
aia 19127
n 29030
il 22631
fquf 5479
p 37792
ce 15312
g 63412
dcx 35910
d 27742
qzf 54298
heta 63173
kh 1090
e 43241
qhq 8146
odhu 25059
dsw 15423
xtbx 2259
yz 1711
yk 18847
atv 56007
twqn 28249
hha 59454
u 5985
b 41493
st 38512
o 34385
uzl 43346
bvmo 12586
t 64101
xops 7214
iz 53638
a 25206...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
1111000111000000000111100011100000000011101101010100100
0111000000000000000011100000000000000001100110100011100
0110111100000000000011011110000000000011100110000110100
0011111101010011100001111110101001110011100110101010000
0000100000000000000000010000000000000000000...

Manager to Bob

Hello
1
aia aia
n n
il il
fquf fquf
p p
ce ce
g g
dcx dcx
d d
qzf qzf
heta heta
kh kh
e e
qhq qhq
odhu odhu
dsw dsw
xtbx xtbx
yz yz
yk yk
atv atv
twqn twqn
hha hha
u u
b b
st st
o o
uzl uzl
bvmo bvmo
t t
xops xops
iz iz
a a
n n
sulk sulk
jwdo jwdo
rz rz
gcdd gcdd
ylle ylle
dqw dqw
ti ti
zatn zatn
tx...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
1111000111000000000111100011100000000000000000000000001
0111000000000000000011100000000000000000000000000000001
0110111100000000000011011110000000000000000000000000001
0011111101010011100001111110101001110000000000000000001
0000100000000000000000010000000000000000000...

Manager to Circuit

Hello
55
55
1
aia 19127
n 29030
il 22631
fquf 5479
p 37792
ce 15312
g 63412
dcx 35910
d 27742
qzf 54298
heta 63173
kh 1090
e 43241
qhq 8146
odhu 25059
dsw 15423
xtbx 2259
yz 1711
yk 18847
atv 56007
twqn 28249
hha 59454
u 5985
b 41493
st 38512
o 34385
uzl 43346
bvmo 12586
t 64101
xops 7214
iz 53638
a...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Subtask #3:

score: 4
Accepted

Test #3:

score: 4
Accepted
time: 1625ms
memory: 733312kb

Manager to Alice

Hello
1
djn 44153
gcd 23377
jd 28586
b 36383
lr 13285
d 43987
ctom 59868
opf 64891
wkjb 53909
sltm 27048
naj 29687
vaw 56179
bhb 45322
h 61116
w 22721
snqz 62363
d 26719
x 32760
agt 38964
o 31426
gqvs 47108
nw 41611
rh 20443
uk 43165
cg 55171
jx 18617
shb 25713
o 14480
b 17639
yff 39513
vhc 10370
op...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
0100010111010000000010001011101000000010011110001101010
0111001101001000000011100110100100000010001010110110100
0001000010000000000000100001000000000001010101111101100
0100000000000000000010000000000000000011111000011100010
0101001010000000000010100101000000000010100...

Manager to Bob

Hello
997
djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn djn dj...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
010001011101000000001000101110100000000000000000000000101000101110100000000100010111010000000000000000000000010100010111010000000010001011101000000000000000000000001010001011101000000001000101110100000000000000000000000101000101110100000000100010111010000000000000000...

Manager to Circuit

Hello
55
64655
1
djn 44153
gcd 23377
jd 28586
b 36383
lr 13285
d 43987
ctom 59868
opf 64891
wkjb 53909
sltm 27048
naj 29687
vaw 56179
bhb 45322
h 61116
w 22721
snqz 62363
d 26719
x 32760
agt 38964
o 31426
gqvs 47108
nw 41611
rh 20443
uk 43165
cg 55171
jx 18617
shb 25713
o 14480
b 17639
yff 39513
vhc...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Test #4:

score: 4
Accepted
time: 1623ms
memory: 735532kb

Manager to Alice

Hello
1
a 53191
uctl 63017
ke 12447
yx 36710
jlf 42352
b 57540
bhzv 8047
niqz 14137
imqc 25434
sa 23997
fvq 13770
zglp 17555
ng 39637
ph 9099
spom 39125
kj 32447
otwx 45878
fwcz 41192
bawx 13804
bc 4366
ley 19391
wsby 14158
w 24806
vlz 54727
t 58098
uym 10370
tk 26976
sco 1194
jrlz 44186
uo 58070
s ...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
1000000000000000000100000000000000000011100011111100110
0001001111010101101000100111101010110110010100011011110
1100010010000000000110001001000000000011111001000011000
0100010101000000000010001010100000000001100110111100010
0110010111011000000011001011101100000000001...

Manager to Bob

Hello
1000
a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000000000000000000110000000000000000001000000000000000000000000000000000011000000000000000000100000000000000000000000000000000001100000000000000000010000000000000000000000000000000000110000000000000000001000000000000000000000000000...

Manager to Circuit

Hello
55
64864
1
a 53191
uctl 63017
ke 12447
yx 36710
jlf 42352
b 57540
bhzv 8047
niqz 14137
imqc 25434
sa 23997
fvq 13770
zglp 17555
ng 39637
ph 9099
spom 39125
kj 32447
otwx 45878
fwcz 41192
bawx 13804
bc 4366
ley 19391
wsby 14158
w 24806
vlz 54727
t 58098
uym 10370
tk 26976
sco 1194
jrlz 44186
uo...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Subtask #4:

score: 24
Accepted

Test #5:

score: 24
Accepted
time: 20ms
memory: 19264kb

Manager to Alice

Hello
26
a 3454 b 58767 c 58056 d 35863 e 10993 f 13428 g 44400 h 14808 i 42152 j 41685 k 4945 l 33302 m 37616 n 51927 o 14597 p 52276 q 30489 r 49388 s 61314 t 3571 u 45422 v 36417 w 14325 x 25271 y 54399 z 2849
a 45858 b 2285 c 25181 d 56233 e 46605 f 16378 g 8603 h 57322 i 27711 j 54646 k 43915 l...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000111111010110000001000000000000000000100000000000000000111100011010011101100000000000000000110000000000000000000010011010001110001000000000000000000100000000000000001110100000110001010100000000000000001010000000000000000100011110...

Manager to Bob

Hello
13
r w p c g e v j h q y z m b k x u a i t s l n f d o
d g l z c i e k y o u m j n q a b h w s v r f x t p
f a x j n g w y e c z q d k m o h b s p t u r l v i
d m a g u x e i t l r h c v w s z n b p y k q f o j
e l a c s h y d v q j m w t z f i n o g b p r x u k
r a v c t j y i p g e x s l z h...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
001000000000000000011110000000000000000000000000000000111100000000000000001010000000000000000000000000000000010001000000000000000100010000000000000000000000000000001100100000000000000000101000000000000000000000000000000111010000000000000000001100000000000000000000000...

Manager to Circuit

Hello
1544
759
26
a 3454 b 58767 c 58056 d 35863 e 10993 f 13428 g 44400 h 14808 i 42152 j 41685 k 4945 l 33302 m 37616 n 51927 o 14597 p 52276 q 30489 r 49388 s 61314 t 3571 u 45422 v 36417 w 14325 x 25271 y 54399 z 2849
a 45858 b 2285 c 25181 d 56233 e 46605 f 16378 g 8603 h 57322 i 27711 j 54646 ...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Test #6:

score: 24
Accepted
time: 807ms
memory: 368704kb

Manager to Alice

Hello
26
a 48164 b 28573 c 6090 d 10580 e 28810 f 22090 g 33721 h 56320 i 11974 j 43135 k 27272 l 24558 m 8007 n 58521 o 48945 p 16927 q 35665 r 46338 s 17682 t 61745 u 65466 v 38379 w 7611 x 40059 y 12021 z 48622
a 56875 b 14830 c 14401 d 58488 e 37899 f 59069 g 5579 h 43855 i 28452 j 42378 k 24806...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000010010000111101001000000000000000000100000000000000000101110011111011001100000000000000000110000000000000000001010011111010000001000000000000000000100000000000000000010101010010100010100000000000000001010000000000000000010100010...

Manager to Bob

Hello
520
t z n m u m p m t m h t w m e m j m c a v m e k s m b b o m x m a m m l r m d w z m h m r y p j m j v k p l m s q m l w z t v w f m y r r l t e g s c m z s x g f l l g y k w l l y h n x a t a d a h j d m h a k d i m y m d v p p m i y g o g k m a p l m g n b h o v s o d c p g s l c x u a b ...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000000000000000000110000000000000000000100000000000000000000000000000000011000000000000000000110000000000000000000000000000000001100000000000000000000100000000000000000000000000000000110000000000000000001010000000000000000000000000...

Manager to Circuit

Hello
1544
33248
26
a 48164 b 28573 c 6090 d 10580 e 28810 f 22090 g 33721 h 56320 i 11974 j 43135 k 27272 l 24558 m 8007 n 58521 o 48945 p 16927 q 35665 r 46338 s 17682 t 61745 u 65466 v 38379 w 7611 x 40059 y 12021 z 48622
a 56875 b 14830 c 14401 d 58488 e 37899 f 59069 g 5579 h 43855 i 28452 j 42...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Test #7:

score: 24
Accepted
time: 1152ms
memory: 501968kb

Manager to Alice

Hello
26
a 29989 b 65003 c 23706 d 46470 e 54097 f 52200 g 53740 h 23331 i 21621 j 19409 k 33625 l 4116 m 56545 n 3385 o 9307 p 57745 q 17453 r 30585 s 24603 t 6293 u 45579 v 30020 w 6373 x 6614 y 35793 z 5996
a 50545 b 7509 c 41562 d 3086 e 8072 f 33221 g 11292 h 19188 i 41230 j 32989 k 13017 l 491...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000001010010010101110001000000000000000000100000000000000000110101111011111101100000000000000000110000000000000000001011001001110100001000000000000000000100000000000000000110000110101101010100000000000000001010000000000000000100010101...

Manager to Bob

Hello
676
i i i d x i p i i b f i b i c n a i v i l u u i i y t i e f w g o i a l w j i w g j m g h i i p i t i z w f y i d i k i i h i r k x i l i s j h s w l i w i p l z i i c q i o p e b e i k v w u h h b d p w h a i q v b i v o m a m u q i m d k s i i e m i r y c m e q i n f v z q r a i o y w b ...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000000000000000000110000000000000000000100000000000000000000000000000000011000000000000000000110000000000000000000000000000000001100000000000000000000100000000000000000000000000000000110000000000000000001010000000000000000000000000...

Manager to Circuit

Hello
1544
43260
26
a 29989 b 65003 c 23706 d 46470 e 54097 f 52200 g 53740 h 23331 i 21621 j 19409 k 33625 l 4116 m 56545 n 3385 o 9307 p 57745 q 17453 r 30585 s 24603 t 6293 u 45579 v 30020 w 6373 x 6614 y 35793 z 5996
a 50545 b 7509 c 41562 d 3086 e 8072 f 33221 g 11292 h 19188 i 41230 j 32989 k ...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Subtask #5:

score: 24
Accepted

Test #8:

score: 24
Accepted
time: 813ms
memory: 369996kb

Manager to Alice

Hello
26
eq 8873 qonk 13404 bgp 12131 sa 16567 i 37561 di 11240 t 22905 qe 45855 w 36777 im 42369 znsu 38116 y 1547 p 42558 wn 25273 xzaa 65179 mrm 46349 nz 6053 xm 9784 ipa 31714 yjj 37582 xvl 61492 dsg 27767 pga 21166 euq 36162 daq 63046 k 33909
kd 3418 vv 65301 ct 41943 mey 59829 kk 63328 ylx 180...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100100000000000000010010000000000000001001110101001001011010000000000000001101000000000000000101011100010000100000100000000000000000010000000000000001111100011001010001010000000000000000101000000000000001001111010011010011101000000000000001110100000000000000100101011...

Manager to Bob

Hello
521
xvl qonk qe xvl sa wn xvl nz t qonk qonk wn qonk qonk znsu i xvl i pga qonk di qonk mrm qonk xvl xzaa bgp k t k daq qonk w xzaa znsu qonk y qonk im bgp mrm sa euq yjj xm qonk xvl qe eq qonk nz w i bgp p nz ipa wn euq qonk bgp ipa znsu mrm xvl wn ipa qonk p sa im mrm dsg qonk sa qonk sa zns...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100100000000000000010010000000000000000000000000000000110010000000000000001101000000000000000000000000000000011001000000000000000000010000000000000000000000000000001100100000000000000000101000000000000000000000000000000110010000000000000001001100000000000000000000000...

Manager to Circuit

Hello
1544
33307
26
eq 8873 qonk 13404 bgp 12131 sa 16567 i 37561 di 11240 t 22905 qe 45855 w 36777 im 42369 znsu 38116 y 1547 p 42558 wn 25273 xzaa 65179 mrm 46349 nz 6053 xm 9784 ipa 31714 yjj 37582 xvl 61492 dsg 27767 pga 21166 euq 36162 daq 63046 k 33909
kd 3418 vv 65301 ct 41943 mey 59829 kk 63...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Test #9:

score: 24
Accepted
time: 1132ms
memory: 502168kb

Manager to Alice

Hello
26
ugvv 28441 nzs 27524 b 45656 fskb 49837 h 54651 z 49532 hro 9637 o 31743 dx 35201 vjhe 15475 j 34322 fasd 32736 r 46159 cbhq 21869 xvvt 18347 q 63276 zy 38173 cfmu 789 zjd 8115 jq 30973 zwht 65497 a 43754 cp 13250 yij 25938 usy 9293 ruca 20545
sc 63227 kwt 22843 myr 9746 m 15263 y 62117 nb ...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000101011101010101001000000000000000000100000000000000000000110100100110100001000000000000000000100000000000000011011110101010110010100000000000000001010000000000000000100100001100001011110000000000000001111000000000000000111111111...

Manager to Bob

Hello
675
zy b ruca fskb nzs cfmu b dx r j yij b zy a r hro a b cbhq b jq b nzs b q jq usy usy zy fasd zy o nzs q zy ugvv zy xvvt q zjd j o zy cbhq zy z xvvt j zy cfmu j b jq h zy vjhe zy ruca dx zwht z jq zy zwht cbhq yij yij dx zy h yij xvvt zy q zy yij ruca cfmu zy cp jq r dx fskb o nzs fasd zwht...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000000000000000000110000000000000000000100000000000000000000000000000000011000000000000000000000100000000000000000000000000000001100000000000000000001010000000000000000000000000000000110000000000000000001111000000000000000000000000...

Manager to Circuit

Hello
1544
43195
26
ugvv 28441 nzs 27524 b 45656 fskb 49837 h 54651 z 49532 hro 9637 o 31743 dx 35201 vjhe 15475 j 34322 fasd 32736 r 46159 cbhq 21869 xvvt 18347 q 63276 zy 38173 cfmu 789 zjd 8115 jq 30973 zwht 65497 a 43754 cp 13250 yij 25938 usy 9293 ruca 20545
sc 63227 kwt 22843 myr 9746 m 15263 ...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Subtask #6:

score: 6
Accepted

Test #10:

score: 6
Accepted
time: 662ms
memory: 316744kb

Manager to Alice

Hello
29
w 24874 zk 59941 qktx 8994 bxc 53051 dcx 54514 xgpe 58185 zdlg 14733 a 59752 mszk 45274 g 58585 czz 16306 qj 27577 ym 37646 cno 16960 k 48959 phj 28553 nzid 9563 d 21191 jbua 5748 ni 47235 sdy 57974 zzoo 53044 tgc 61502 kph 5010 v 13213 cha 31256 mbl 29651 wn 15740 gdmh 32720
vj 12262 cn 41...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000001011010010111000100000000000000000010000000000000000111000110100101001110000000000000000111000000000000000010011011001001110110100000000000000011010000000000000001111110011111101001101000000000000000110100000000000000101110011...

Manager to Bob

Hello
441
gdmh qj phj xgpe g sdy tgc tgc sdy zdlg nzid a zdlg qj tgc qktx czz cha nzid qj d qj gdmh cha mszk qj tgc qj bxc zdlg k mszk jbua qj a zzoo qktx qj cha qj d xgpe czz phj ni qj qj zdlg a qj ym qj sdy xgpe cno k zzoo qj xgpe ym k zk zk xgpe cno qj gdmh ym phj kph qktx cno d ni ym xgpe mbl zz...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000000000000000000110000000000000000000010000000000000000000000000000000011000000000000000000110100000000000000000000000000000001100000000000000000001101000000000000000000000000000000110000000000000000000010001110000000000000000000...

Manager to Circuit

Hello
1729
28001
29
w 24874 zk 59941 qktx 8994 bxc 53051 dcx 54514 xgpe 58185 zdlg 14733 a 59752 mszk 45274 g 58585 czz 16306 qj 27577 ym 37646 cno 16960 k 48959 phj 28553 nzid 9563 d 21191 jbua 5748 ni 47235 sdy 57974 zzoo 53044 tgc 61502 kph 5010 v 13213 cha 31256 mbl 29651 wn 15740 gdmh 32720
vj ...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Test #11:

score: 6
Accepted
time: 1604ms
memory: 689828kb

Manager to Alice

Hello
30
jf 18452 shyk 4270 yhd 65204 wm 12160 etcz 50321 lp 4559 bavn 19781 t 14747 uuhq 56687 v 58916 gf 26188 s 35736 lpm 49081 xg 31723 vfs 31309 bokg 28560 mn 24669 k 60755 vi 59820 qvs 9358 wpmb 28402 fhrd 18638 x 32808 q 53558 dsjw 54104 pruv 63174 qal 16515 ff 50868 i 16964 dcye 7904
kia 594...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100100000000000000010010000000000000000010001001000010011010000000000000001101000000000000000110010101011011101000100000000000000100010000000000000001101100100010110110010000000000000011001000000000000000001100111010001000101000000000000000010100000000000000110110011...

Manager to Bob

Hello
900
bokg yhd etcz fhrd gf bavn yhd lpm bokg dcye bokg i s wpmb bokg t bokg wpmb v wpmb bokg v bokg lpm bokg etcz bokg xg bokg wm bokg bavn etcz k bokg fhrd bavn dcye bokg dsjw fhrd pruv uuhq vi bokg k bokg qal vfs s fhrd shyk dsjw dsjw lpm q bokg gf bokg ff bokg s ff i bavn fhrd mn jf bokg jf ...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100100000000000000010010000000000000000000000000000000110010000000000000001101000000000000000000000000000000011001000000000000000100010000000000000000000000000000001100100000000000000011001000000000000000000000000000000110010000000000000000010100000000000000000000000...

Manager to Circuit

Hello
1792
58108
30
jf 18452 shyk 4270 yhd 65204 wm 12160 etcz 50321 lp 4559 bavn 19781 t 14747 uuhq 56687 v 58916 gf 26188 s 35736 lpm 49081 xg 31723 vfs 31309 bokg 28560 mn 24669 k 60755 vi 59820 qvs 9358 wpmb 28402 fhrd 18638 x 32808 q 53558 dsjw 54104 pruv 63174 qal 16515 ff 50868 i 16964 dcye 7...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Subtask #7:

score: 18
Accepted

Test #12:

score: 18
Accepted
time: 3248ms
memory: 1389716kb

Manager to Alice

Hello
676
aa 3802 ab 7056 ac 59883 ad 34872 ae 7482 af 50954 ag 3033 ah 10947 ai 45175 aj 38968 ak 25809 al 5243 am 51663 an 29607 ao 51746 ap 7026 aq 28678 ar 19365 as 9937 at 50580 au 32268 av 36219 aw 12499 ax 11217 ay 36118 az 42569 ba 27331 bb 61063 bc 46216 bd 42920 be 31324 bf 61604 bg 40272 ...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
110110000000000000011011000000000000000101101101110000000111000000000000000011100000000000000000010011101100001011100000000000000101110000000000000011010111100101110011110000000000000001111000000000000000001110000010001011111000000000000001111100000000000000010111001...

Manager to Bob

Hello
997
mx jl jv ck gp fv iu hn cj wo uf ek ox ux ln na yo ss ro zg vx al ji zc zt qi lt vf kk pb hj mm mr fz is jo ym vz ju yt dd oj vm ga xd ww ce is wf ej cv ib ad dp qj pr wn zr al yo gr vi dd vv bm lf ky on gb oh zy oe mf xo cb nv ri pb we cy oh qg xo zq ci mg dy wq cv gy sr vx wo mn jg zs qw...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
110110000000000000011001110000000000000000000000000000111011000000000000001010001110000000000000000000000000011011100000000000000000110111000000000000000000000000001011110000000000000000011110000000000000000000000000000101111000000000000001010000101000000000000000000...

Manager to Circuit

Hello
43260
64655
676
aa 3802 ab 7056 ac 59883 ad 34872 ae 7482 af 50954 ag 3033 ah 10947 ai 45175 aj 38968 ak 25809 al 5243 am 51663 an 29607 ao 51746 ap 7026 aq 28678 ar 19365 as 9937 at 50580 au 32268 av 36219 aw 12499 ax 11217 ay 36118 az 42569 ba 27331 bb 61063 bc 46216 bd 42920 be 31324 bf 616...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Test #13:

score: 18
Accepted
time: 3218ms
memory: 1394148kb

Manager to Alice

Hello
676
aa 26662 ab 48638 ac 60364 ad 62338 ae 44505 af 48842 ag 63286 ah 18051 ai 17732 aj 19878 ak 55307 al 59076 am 58793 an 13916 ao 42166 ap 25524 aq 7845 ar 28244 as 7472 at 59599 au 44422 av 58887 aw 53274 ax 3434 ay 6675 az 44061 ba 20376 bb 55045 bc 28979 bd 12976 be 39071 bf 54565 bg 284...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
110110000000000000011011000000000000000110010000010110000111000000000000000011100000000000000011111111011110101011100000000000000101110000000000000000110011110101110011110000000000000001111000000000000000100000111001111011111000000000000001111100000000000000100110111...

Manager to Bob

Hello
1000
rt an hq ht df pe bx an ng sj hh an cu an lc an rb an dz an md an zq an bx xd eg sa iu an xs an ok an kk df uo an pp vq ix mb hz an bq pm ml bd dj an cs an kl an db kv gn fe bq qy ku an pd td bu vb an fz hq an ez oo yd an ma an wy an yf an gw xq iq an ax an lv ho oy fq lv an ho an wr an l...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
110110000000000000000010100000000000000000000000000000111011000000000000000001010000000000000000000000000000011101100000000000000110100100100000000000000000000000001001110000000000000010111101000000000000000000000000000110111000000000000000001010000000000000000000000...

Manager to Circuit

Hello
43260
64864
676
aa 26662 ab 48638 ac 60364 ad 62338 ae 44505 af 48842 ag 63286 ah 18051 ai 17732 aj 19878 ak 55307 al 59076 am 58793 an 13916 ao 42166 ap 25524 aq 7845 ar 28244 as 7472 at 59599 au 44422 av 58887 aw 53274 ax 3434 ay 6675 az 44061 ba 20376 bb 55045 bc 28979 bd 12976 be 39071 bf ...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Subtask #8:

score: 10
Accepted

Test #14:

score: 10
Accepted
time: 2972ms
memory: 1284936kb

Manager to Alice

Hello
676
gud 59249 ucb 18471 qvp 38121 ow 12706 zbof 22914 z 5783 f 8770 dc 3105 eaw 35643 q 15112 ishu 39788 xxyb 9072 ralk 56334 cr 13656 efou 62421 d 8889 chu 20507 hxnn 38919 bfhq 62602 tcg 46194 gg 11084 fii 64807 zob 11272 qru 16584 vx 25726 exeh 13712 hi 62595 wtr 9063 penv 38 uxxv 60408 nw ...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000001101010001010111001000000000000000000100000000000000000001001110100010001100000000000000000110000000000000000000101110010110000001000000000000000000100000000000000001001110101000100010100000000000000001010000000000000000101110000...

Manager to Bob

Hello
888
m fu u di ibtf di vhp di inj di vgqx di isb di cd di frbl di hy xll mitl ng uukq di cuf di mzno di li elgy hu jr qrp di li ofc mcx di rdj qcvj fh eaw qf pngs inj rib icow jsj hq mcx tfyg di xwwn sejh qrwp ptq xzya sze dgdw sw cm yle uad hp okiv di phno di tfe di uyr xrf qf di dw di bz snhr...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
010000000000000000010001110000000000000000000000000000101000000000000000001000111000000000000000000000000000010010000000000000000101010010100001001100000000000000001101000000000000000010001110000000000000000000000000000110100000000000000001000001010000000000000000000...

Manager to Circuit

Hello
43260
57296
676
gud 59249 ucb 18471 qvp 38121 ow 12706 zbof 22914 z 5783 f 8770 dc 3105 eaw 35643 q 15112 ishu 39788 xxyb 9072 ralk 56334 cr 13656 efou 62421 d 8889 chu 20507 hxnn 38919 bfhq 62602 tcg 46194 gg 11084 fii 64807 zob 11272 qru 16584 vx 25726 exeh 13712 hi 62595 wtr 9063 penv 38 ux...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Test #15:

score: 10
Accepted
time: 3261ms
memory: 1389980kb

Manager to Alice

Hello
676
azp 60638 sz 64602 nwn 14954 ga 41871 mdjw 30020 hw 36281 iilo 55952 cu 37427 bv 53797 vsba 15455 orh 20845 ujn 17761 vncb 50391 hlm 9584 tc 63713 xdn 49866 id 58734 rh 58638 xrv 41265 zmlp 10233 g 52026 ec 16350 kcv 39170 boat 42894 ymw 3011 itfl 32722 ua 47934 ubs 58228 jbdq 19651 so 349...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000001001111011100000001000000000000000000100000000000000000000000100110001001100000000000000000110000000000000000001010100010111110001000000000000000000100000000000000000101110110010110010100000000000000001010000000000000000001110010...

Manager to Bob

Hello
999
xrha ry er ry rbf mn yb ry ogce ry tjv boh psui ry bhuv ry mj ry rk bk ig tfu ro ry e ry cqso zbeq kg ry iwru ry ch qupv bhfo ry lujl mynh hm lqn pw ry faxr ry zrbg ry mj ry fbt gp wjr ry vtpd ry rdzv oshr ogcv ry x ry cst ry pjn gcx sgn zbeq cx ry zyv nia ap ap pw qut va fe iv iv czv ry o...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010110111100000000000000000000000000101000000000000000001011011110000000000000000000000000010100000000000000000101101111000000000000000000000000001110000000000000000000111101100000000000000000000000000100100000000000000000000000000000011110000000000...

Manager to Circuit

Hello
43260
64793
676
azp 60638 sz 64602 nwn 14954 ga 41871 mdjw 30020 hw 36281 iilo 55952 cu 37427 bv 53797 vsba 15455 orh 20845 ujn 17761 vncb 50391 hlm 9584 tc 63713 xdn 49866 id 58734 rh 58638 xrv 41265 zmlp 10233 g 52026 ec 16350 kcv 39170 boat 42894 ymw 3011 itfl 32722 ua 47934 ubs 58228 jbdq ...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Subtask #9:

score: 6
Accepted

Test #16:

score: 6
Accepted
time: 3288ms
memory: 1413524kb

Manager to Alice

Hello
699
wkm 49893 hus 29682 wba 42773 byj 30204 ikc 65421 agqd 20734 fwy 42563 icr 64301 yl 36787 bz 41537 xlka 6691 iq 37001 wij 10013 dfoq 13371 vdy 10291 wpwc 43193 rz 43253 engz 13755 rou 22700 lq 12011 jkn 21719 jleh 57791 olpm 12289 nbqf 57325 vyx 18438 ldgz 10230 ts 50054 odgx 30982 jfst 42...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000000111111001110110001000000000000000000100000000000000000001000100010111001100000000000000000110000000000000000001100101000110000001000000000000000000100000000000000000010101010101110010100000000000000001010000000000000000011001011...

Manager to Bob

Hello
999
jrym hpu td ej llf hqoa hlay ej amz ej qr vzvu erf ej mh ej fwj qi dd ej ay ej dbvr lsgs sag ja hop ej vdcc ej wpwc cag la cugy mfbg ern pgj twc qjs byj u ej wwa ej mv ej utwd no swl mvnr pjar agel vnq ipe fp mwh atl lmnb dr ej nufb eqf wsxj wonu hqoa ej rbhe ej l vme ihwn weks kaz il se k...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000000110001000000000000000000000000000110000000000000000000011000100000000000000000000000000011000000000000000000001100010000000000000000000000000001100000000000000000000110001000000000000000000000000000110000000000000000000100010011110100000000000000...

Manager to Circuit

Hello
44775
64793
699
wkm 49893 hus 29682 wba 42773 byj 30204 ikc 65421 agqd 20734 fwy 42563 icr 64301 yl 36787 bz 41537 xlka 6691 iq 37001 wij 10013 dfoq 13371 vdy 10291 wpwc 43193 rz 43253 engz 13755 rou 22700 lq 12011 jkn 21719 jleh 57791 olpm 12289 nbqf 57325 vyx 18438 ldgz 10230 ts 50054 odgx 3...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK

Test #17:

score: 6
Accepted
time: 3283ms
memory: 1416524kb

Manager to Alice

Hello
700
fzd 54670 jl 22856 tkko 12516 ygzg 19314 sofh 14135 rl 47752 xou 8861 rbew 11214 ese 43902 xe 24372 pwu 43712 bz 4444 fb 62518 xvdo 27322 sfs 4726 vrdh 19440 ew 36069 yvt 34583 dxo 21175 slj 31178 nu 4290 wzz 18348 bc 40134 gpr 37794 bhz 38296 gdw 36719 nw 40633 awvl 17078 zpuv 17715 cksy ...

Alice to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000010000000000000000001010001110100100001000000000000000000100000000000000000110110110001011001100000000000000000110000000000000000011111011111010010001000000000000000000100000000000000001010010000000001010100000000000000001010000000000000000101100011...

Manager to Bob

Hello
1000
wh lfuw hi icue gww fepd xi icue no ac ew pmpf nhq hiox cc icue gpr zi omcp icue z vp ce bhz db xijs er sa ubkd lo xq icue fzd icue tii icue dopc icue auq yn gvsw lfuw sr gc dzq icue syj icue v icue yvt wvat ly icue xj rr ifwq icue gvg qrlr gu nyg tccb icue sjuy icue opjz icue st yo ktq u...

Bob to Manager

235fc77fd78da210d6b5a61b92603c4f
100000000000000000011011111110011100100000000000000000110000000000000000001101111111001110010000000000000000011000000000000000000110111001000100101100000000000000001010000000000000000011011111110011100100000000000000000111000000000000000000010100010011100100000000000...

Manager to Circuit

Hello
44844
64864
700
fzd 54670 jl 22856 tkko 12516 ygzg 19314 sofh 14135 rl 47752 xou 8861 rbew 11214 ese 43902 xe 24372 pwu 43712 bz 4444 fb 62518 xvdo 27322 sfs 4726 vrdh 19440 ew 36069 yvt 34583 dxo 21175 slj 31178 nu 4290 wzz 18348 bc 40134 gpr 37794 bhz 38296 gdw 36719 nw 40633 awvl 17078 zpuv...

Circuit to Manager

Circuit Output Finished.
235fc77fd78da210d6b5a61b92603c4f
Correct!

Manager to Checker

1

result:

ok OK