Submission #889840

#TimeUsernameProblemLanguageResultExecution timeMemory
88984012345678Saveit (IOI10_saveit)C++17
50 / 100
178 ms20240 KiB
#include "grader.h"
#include "encoder.h"
#include <bits/stdc++.h>

using namespace std;

void send(int x)
{
    for (int i=0; i<10; i++) encode_bit((x&(1<<i)?1:0));
}

void encode(int nv, int nh, int ne, int *v1, int *v2){
    vector<int> d[nv];
    for (int i=0; i<ne; i++) d[v1[i]].push_back(v2[i]), d[v2[i]].push_back(v1[i]);
    for (int i=0; i<nh; i++)
    {
        vector<int> vs(nv), res(nv);
        queue<int> q;
        vs[i]=1;
        q.push(i);
        while (!q.empty())
        {
            int u=q.front();
            q.pop();
            for (auto v:d[u]) if (!vs[v]) res[v]=res[u]+1, vs[v]=1, q.push(v);
        }
        for (int j=0; j<nv; j++) send(res[j]);
    }
}
#include "grader.h"
#include "decoder.h"
#include <bits/stdc++.h>

using namespace std;

void decode(int nv, int nh) {
    for (int i=0; i<nh; i++)
    {
        for (int j=0; j<nv; j++)
        {
            int res=0;
            for (int k=0; k<10; k++) if (decode_bit()) res|=(1<<k);
            hops(i, j, res);
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...