Submission #888790

#TimeUsernameProblemLanguageResultExecution timeMemory
888790Jawad_Akbar_JJSaveit (IOI10_saveit)C++14
0 / 100
160 ms12344 KiB
#include <iostream>
#include <vector>
#include "grader.h"
#include "encoder.h"
using namespace std;

const int N = 1000 + 10;
vector<int> nei[N];
int dist[40][N];
int seen[N];
int cur = 1;

void bfs(int s){
	vector<int> v,vv;

	v.push_back(s);
	seen[s] = cur;
	dist[s][s] = 0;
	while (v.size()>0){
		for (int i : v)
			for (int j : nei[i])
				if (seen[j]!=cur){
					seen[j] = cur;
					dist[s][j] = dist[s][i] + 1;
					vv.push_back(j);
				}
		swap(v,vv);
		vv.clear();
	}
	cur++;
}

void encode(int n,int h,int p,int a[],int b[]){
	
	for (int i=1;i<=p;i++){
		nei[a[i-1]+1].push_back(b[i-1]+1);
		nei[b[i-1]+1].push_back(a[i-1]+1);
	}

	for (int i=1;i<=h;i++)
		bfs(i);

	for (int i=1;i<=h;i++){
		for (int j=1;j<=n;j++){
			int d = dist[i][j];
			encode_bit(d);
		}
	}
}


#include "grader.h"
#include "decoder.h"
void decode(int n,int h){
	for (int i=1;i<=h;i++){
		for (int j=1;j<=n;j++){
			int d = decode_bit();
			hops(i-1,j-1,d);
		}
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...