Submission #564986

#TimeUsernameProblemLanguageResultExecution timeMemory
564986shrimbSaveit (IOI10_saveit)C++17
50 / 100
246 ms12496 KiB
#include "grader.h"
#include "encoder.h"
#include"bits/stdc++.h"
using namespace std;


void encode(int n, int h, int p, int *v1, int *v2){
  vector<int> adj[n + 1];
  for (int i = 0 ; i < p ; i++) {
      adj[v1[i]].push_back(v2[i]);
      adj[v2[i]].push_back(v1[i]);
  }
  for (int i = 0 ; i < h ; i++) {
      int dist[n];
      for (int j = 0 ; j < n ; j++) dist[j] = INT_MAX;
      dist[i] = 0;
      queue<int> q;
      q.push(i);
      while (q.size()) {
          auto cur = q.front();
          q.pop();
          for (int j : adj[cur]) {
              if (dist[j] > dist[cur] + 1) {
                  dist[j] = dist[cur] + 1;
                  q.push(j);
              }
          }
      }
      for (int j = 0 ; j < n ; j++) {
          for (int k = 0 ; k < 10 ; k++) {
              encode_bit(bool(dist[j] & (1 << k)));
          }
      }
  }
  return;
}
#include "grader.h"
#include "decoder.h"
#include "bits/stdc++.h"
using namespace std;
void decode(int n, int h) {
    int dist[h][n];
    memset(dist, 0, sizeof dist);
    for (int i = 0 ; i < h ; i++) {
        for (int j = 0 ; j < n ; j++) {
            for (int k = 0 ; k < 10 ; k++) {
                dist[i][j] |= ((1 << k)*decode_bit());
            }
        }
    }
    for (int i = 0 ; i < h ; i++) {
        for (int j = 0 ; j < n  ; j++) {
            hops(i, j, dist[i][j]);
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...