Submission #1144604

#TimeUsernameProblemLanguageResultExecution timeMemory
1144604Can_I_Put_ma_ballzSaveit (IOI10_saveit)C++20
0 / 100
23 ms2368 KiB
#include "grader.h"
#include "encoder.h"


void encode_varint(int x) {
    encode_bit(x);
}

void encode(int nv, int nh, int ne, int *v1, int *v2){
    encode_varint(ne);
    for (int i = 0; i < ne ; ++i) {
        encode_varint(v1[i]);
        encode_varint(v2[i]);
    }
    return;
}
#include <bits/stdc++.h>
#include <cstring>
#include "grader.h"
#include "decoder.h"


template<typename T> using Vec = std::vector<T>;

Vec<int> bfs(int hub, int nv, const Vec<Vec<int>>& giraffe) {
   const int invalid = -1;

   Vec<int> dist(nv);
   std::fill(dist.begin(), dist.end(), invalid);

   std::queue<std::pair<int, int>> q; q.emplace(hub, 0);

   while (!q.empty()) {
      auto [u, distance] = q.front(); q.pop();
      if (dist[u] != invalid) continue;
      dist[u] = distance++;
      for (const auto& v : giraffe[u]) {
         q.emplace(v, distance);
      }
   }

   return dist;
}

int decode_varint() {
   return decode_bit();
}

void decode(int nv, int nh) {
   int ne = decode_varint();
   Vec<Vec<int>> giraffe(nv);
   for (int i = 0; i < ne ; ++i) {
      int u = decode_varint();
      int v = decode_varint();
      giraffe[u].push_back(v);
      giraffe[v].push_back(u);
   }

   for (int hub = 0; hub < nh; hub++) {
      Vec<int> distances = bfs(hub, nv, giraffe);
      for (int i = 0; i < nv; ++i) {
         hops(hub, i, distances[i]);
      }
   }

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...