Submission #201970

#TimeUsernameProblemLanguageResultExecution timeMemory
201970Leonardo_PaesSaveit (IOI10_saveit)C++17
0 / 100
289 ms9748 KiB
#include "encoder.h"
#include "grader.h"
#include "vector"
#include "queue"

using namespace std;

vector <int> grafo[1100];

int dist[1100][1100];

void encode(int n, int h, int p, int *v1, int *v2){

    for(int i=0; i<n; i++) grafo[i].clear();

    for(int i=0; i<h; i++){
        grafo[v1[i]].push_back(v2[i]);
        grafo[v2[i]].push_back(v1[i]);
    }

    for(int i=0; i<h; i++){
        for(int j=0; j<n; j++){
            dist[i][j] = 0x3f3f3f3f;
        }

        queue<int> q;

        q.push(i);

        dist[i][i] = 0;

        while(!q.empty()){
            int u = q.front();

            q.pop();

            for(auto v : grafo[u]){
                if (dist[i][u] + 1 < dist[i][v]){
                    dist[i][v] = dist[i][u] + 1;
                    q.push(v);
                }
            }
        }
    }
    for(int i=0; i<h; i++){
        for(int j=0; j<n; j++){
            for(int k=0; k<10; k++){
                encode_bit(((dist[i][j]&(1<<k))&1));
            }
        }
    }
}
#include "decoder.h"
#include "grader.h"

void decode(int n, int h) {
    for(int i=0; i<h; i++){
        for (int j=0; j<n; j++){
            int sum = 0;

            for(int k=0; k<10; k++){
                sum += (1<<k) * decode_bit();
            }

            hops(i, j, sum);
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...