Submission #295267

#TimeUsernameProblemLanguageResultExecution timeMemory
295267amiratouSaveit (IOI10_saveit)C++14
50 / 100
292 ms13808 KiB
#include "grader.h"
#include "encoder.h"
#include <bits/stdc++.h>
using namespace std;
const int INF = (int)(1e9);

int d[1005];
vector<int> vec[1005];

void encode(int nv, int nh, int ne, int *v1, int *v2){
	for (int i = 0; i < ne; ++i)
	{
		vec[v1[i]].push_back(v2[i]);
		vec[v2[i]].push_back(v1[i]);
	}
	for (int i = 0; i < nh; ++i)
	{
		for (int j = 0; j < nv; ++j)d[j]=INF;
		queue<int> q;
		q.push(i);
		d[i]=0;
		while(!q.empty()){
			int f=q.front();
			q.pop();
			for(auto it:vec[f])
				if(d[it]==INF){
					d[it]=d[f]+1;
					q.push(it);
				}
		}
		for (int j = i+1; j < nv; ++j)
		{
			assert(d[j]!=INF);
			for (int z = 0; z < 10; ++z)
				encode_bit((d[j]>>z)&1);
		}
	}
}
#include "grader.h"
#include "decoder.h"
#include <bits/stdc++.h>
using namespace std;

void decode(int nv, int nh) {
	for (int i = 0; i < nh; ++i)
	{
		hops(i,i,0);
		for (int j = i+1; j < nv; ++j)
		{
			int d=0;
			for (int z = 0; z < 10; ++z)
				d+=(1<<z)*decode_bit();
			hops(i,j,d);
			if(j<nh)hops(j,i,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...