Submission #1220302

#TimeUsernameProblemLanguageResultExecution timeMemory
1220302thangdz2k7저장 (Saveit) (IOI10_saveit)C++20
0 / 100
45 ms5696 KiB
#ifdef EVAL

#include "grader.h"
#include "encoder.h"

#endif

#include <bits/stdc++.h>

using namespace std;

namespace changes{

	#define Bit(x, i) ((x) >> (i) & 1)
	#define Mask(i) (1 << (i))

	const int block3 = 39;
	const int block2 = 62;
	const int LG = 10;

	long long p2[block2], p3[block3];

	void init(){
		p2[0] = 1;
		for (int i = 1; i < block2; ++ i)
			p2[i] = p2[i - 1] * 2;

		p3[0] = 1;
		for (int i = 1; i < block3; ++ i) 
			p3[i] = p3[i - 1] * 3;

	}

	long long fval3(vector <int> states){
		long long rt = 0;
		for (int i = 0; i < int(states.size()); ++ i) 
			rt += p3[i] * states[i];

		return rt;
	}

	vector <int> tval3(long long val, int num){
		vector <int> states(num);
		for (int i = 0; i < num; ++ i){
			states[i] = val % 3;
			val /= 3;
		}

		return states;
	}

	long long fval2(vector <int> states){
		long long rt = 0;
		for (int i = 0; i < int(states.size()); ++ i)
			rt += p2[i] * states[i];

		return rt;
	}

	vector <int> tval2(long long val, int num){
		vector <int> states(num);
		for (int i = 0; i < num; ++ i){
			states[i] = val % 2;
			val /= 2;
		}

		return states;
	}
}

using namespace changes;

#ifndef EVAL

void encode_bit(int b){
}

#endif

void encode(int nv, int nh, int ne, int *v1, int *v2){
	vector <vector <int>> adj(nv);

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

	vector <int> fa(nv, -1);

	function <void(int)> dfs = [&](int u){
		for (int v : adj[u]) if (v != fa[u] && v && fa[v] == -1){
			fa[v] = u;
			dfs(v);
		}
	};

	dfs(0);

	for (int i = 1; i < nv; ++ i){
		for (int l = 0; l < LG; ++ l)
			encode_bit(Bit(fa[i], l));
	}

	for (int r = 0; r < nh; ++ r){
		vector <int> dist(nv, -1);
		dist[r] = 0;
		queue <int> qu;
		qu.push(r);

		while (qu.size()){
			int u = qu.front(); qu.pop();

			for (int v : adj[u]) if (dist[v] < 0){
				dist[v] = dist[u] + 1;
				qu.push(v);
			}
		}

		for (int i = 1; i < nv; i += block3){
			vector <int> tmp;
			for (int j = i; j < min(nv, i + block3); ++ j)
				tmp.push_back(dist[i] - dist[fa[i]] + 1);

			for (int b : tval2(fval3(tmp), block2)) encode_bit(b);
		}
	}
}

#ifndef EVAL

int main(){

	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	int n; cin >> n;
	cout << n / 2;

	return 0;
}

#endif
#ifdef EVAL

#include "grader.h"
#include "decoder.h"

#endif

#include <bits/stdc++.h>

using namespace std;

namespace changes{

	#define Bit(x, i) ((x) >> (i) & 1)
	#define Mask(i) (1 << (i))

	const int block3 = 39;
	const int block2 = 62;
	const int LG = 10;

	long long p2[block2], p3[block3];

	void init(){
		p2[0] = 1;
		for (int i = 1; i < block2; ++ i)
			p2[i] = p2[i - 1] * 2;

		p3[0] = 1;
		for (int i = 1; i < block3; ++ i) 
			p3[i] = p3[i - 1] * 3;

	}

	long long fval3(vector <int> states){
		long long rt = 0;
		for (int i = 0; i < int(states.size()); ++ i) 
			rt += p3[i] * states[i];

		return rt;
	}

	vector <int> tval3(long long val, int num){
		vector <int> states(num);
		for (int i = 0; i < num; ++ i){
			states[i] = val % 3;
			val /= 3;
		}

		return states;
	}

	long long fval2(vector <int> states){
		long long rt = 0;
		for (int i = 0; i < int(states.size()); ++ i)
			rt += p2[i] * states[i];

		return rt;
	}

	vector <int> tval2(long long val, int num){
		vector <int> states(num);
		for (int i = 0; i < num; ++ i){
			states[i] = val % 2;
			val /= 2;
		}

		return states;
	}
}

using namespace changes;

#ifndef EVAL

int decode_bit(){
	return 0;
}

void hops(int h, int c, int d){


}

#endif

void decode(int nv, int nh){
	vector <int> fa(nv, -1);
	vector <vector <int>> adj(nv);

	for (int i = 1; i < nv; ++ i){
		fa[i] = 0;
		for (int l = 0; l < LG; ++ l)
			if (decode_bit()) fa[i] |= Mask(l);

		adj[fa[i]].push_back(i);
	}

	for (int r = 0; r < nh; ++ r){
		vector <int> diff(nv);
		for (int i = 1; i < nv; i += block3){
			vector <int> tmp;
			for (int j = 0; j < block2; ++ j)
				tmp.push_back(decode_bit());

			vector <int> cur = tval3(fval2(tmp), min(block3, nv - i));
			for (int j = 0; j < min(block3, nv - i); ++ j) 
				diff[i + j] = cur[j] - 1;
		}

		vector <int> dist(nv);
		dist[0] = 0; int u = r;
		while (u){
			dist[0] -= diff[u];
			u = fa[u];
		}

		function <void(int)> dfs = [&](int u) {
			for (int v : adj[u]) {
				dist[v] = dist[u] + diff[v];
				dfs(v);
			}
		};

		dfs(0);

		for (int i = 0; i < nv; ++ i) 
			hops(r, i, dist[i]);
	}
}

#ifndef EVAL

int main(){

	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	int n; cin >> n;
	cout << n / 2;

	return 0;
}

#endif
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...