Submission #476872

#TimeUsernameProblemLanguageResultExecution timeMemory
476872wiktoria_bazanSaveit (IOI10_saveit)C++14
0 / 100
278 ms13396 KiB
#include "grader.h"
#include "encoder.h"

int const N = 1e3 + 9;
int const H = 40;
int d[H][N];
bool odw[H][N];
int G[N][N];
int R[N];

void dfs(int v, int in, int w) {
    odw[in][v] = true;
    d[in][v] = w;
    for (int i = 0; i < R[v]; i++) {
        int sas = G[v][i];
        if (!odw[in][sas])
            dfs(sas, in, w + 1);
    }
}

void int_to_bits(int a) { //9 bitów
  int t = 0;
  while(a > 0){
      encode_bit(a % 2);
      a /= 2;
      t++;
  }
  while(t < 9){
    encode_bit(0);
    t++;
  }
}


void encode(int nv, int nh, int ne, int* v1, int* v2) {
    for (int i = 0; i < ne; i++) {
        G[v1[i]][R[v1[i]]] = v2[i];
        R[v1[i]]++;
        G[v2[i]][R[v2[i]]] = v1[i];
        R[v2[i]]++;
    }
    for (int h = 0; h < nh; h++) {
        dfs(h, h, 0);
        for (int v = 0; v < nv; v++) {
            int_to_bits(d[h][v]);
        }
    }
    return;
}
#include "grader.h"
#include "decoder.h"
void decode(int nv, int nh) {
    for (int h = 0; h < nh; h++) {
        for (int v = 0; v < nv; v++) {
            int mn = 1;
            int a = 0;
            for (int i = 0; i < 9; i++) {
                int bit = decode_bit();
                a += bit * mn;
                mn <<= 2;
            }
            hops(h, v, a);
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...