제출 #1144505

#제출 시각아이디문제언어결과실행 시간메모리
1144505SulA저장 (Saveit) (IOI10_saveit)C++20
50 / 100
75 ms7488 KiB
#include "grader.h"
#include "encoder.h"
#include <queue>
#include <vector>
using namespace std;

vector<int> adj[1000];
int dist[1000];

void bfs(int s) {
    fill(dist, dist + 1000, -1);
    dist[s] = 0;
    queue<int> q;
    q.push(s);
    while (!q.empty()) {
        int u = q.front();
        q.pop();
        for (int v : adj[u]) if (dist[v] == -1) {
            dist[v] = dist[u] + 1;
            q.push(v);
        }
    }
}


void encode(int n, int h, int m, int *u, int *v){
    for (int i = 0; i < m; i++) {
        adj[u[i]].push_back(v[i]);
        adj[v[i]].push_back(u[i]);
    }
    for (int i = 0; i < h; i++) {
        bfs(i);
        for (int j = 0; j < n; j++) {
            for (int b = 0; b < 10; b++) {
                encode_bit((dist[j] >> b) & 1);
            }
        }
    }
}
#include "grader.h"
#include "decoder.h"
#include <iostream>

void decode(int n, int h) {
    for (int i = 0; i < h; i++) {
        for (int j = 0; j < n; j++) {
            int dis = 0;
            for (int b = 0; b < 10; b++)
                dis |= decode_bit() << b;
            // std::cout<<i<<' '<<j<<' '<<dis<<'\n';
            hops(i, j, dis);
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...