Submission #1021025

# Submission time Handle Problem Language Result Execution time Memory
1021025 2024-07-12T13:01:02 Z 0npata Amusement Park (JOI17_amusement_park) C++17
10 / 100
18 ms 5696 KB
#include "Joi.h"

using namespace std;
#include<bits/stdc++.h>

#define vec vector

namespace joi {

const int MXN = 10'005;

int t = 0;

vec<int> tree[MXN];
int depth[MXN];
int ind[MXN];
vec<int> g[MXN];

void dfs1(int u, vec<bool>& vis) {
	vis[u] = true;
	for(int v : g[u]) {
		if(vis[v]) continue;
		dfs1(v, vis);
		depth[u] = max(depth[u], 1+depth[v]);
		tree[u].push_back(v);
	}
	sort(tree[u].begin(), tree[u].end(), [&](int x, int y) { return depth[x] > depth[y]; });
}

void dfs2(int u) {
	ind[u] = t;
	t += 1;
	for(int v : tree[u]) {
		dfs2(v);
	}
}

void Joi(int N, int M, int A[], int B[], long long X, int T) {

	vec<bool> vis(N);

	for(int i = 0; i<M; i++) {
		g[A[i]].push_back(B[i]);
		g[B[i]].push_back(A[i]);
	}


	dfs1(0, vis);

	dfs2(0);


	for(int i = 0; i < N; i++){
		int bi = ind[i] % 60;

		int val = (X & ((long long)1<<bi)) != 0;
		MessageBoard(i, val);

	}
}

}


void Joi(int N, int M, int A[], int B[], long long X, int T) { joi::Joi(N, M, A, B, X, T); };
#include "Ioi.h"
#include<bits/stdc++.h>

using namespace std;

#define vec vector

namespace ioi {


	const int MXN = 10'005;

	vec<int> g[MXN];
	int par[MXN];
	int sz[MXN];

	vec<int> vals(MXN, -1);

	int t = 0;

	vec<int> tree[MXN];
	int depth[MXN];
	int ind[MXN];

	void dfs1(int u, vec<bool>& vis) {
		vis[u] = true;
		sz[u] = 1;
		for(int v : g[u]) {
			if(vis[v]) continue;
			par[v] = u;
			dfs1(v, vis);
			depth[u] = max(depth[u], 1+depth[v]);
			sz[u] += sz[v];
			tree[u].push_back(v);
		}
		sort(tree[u].begin(), tree[u].end(), [&](int x, int y) { return depth[x] == depth[y] ? x < y : depth[x] > depth[y]; });
	}

	void dfs2(int u) {
		ind[u] = t++;
		for(int v : tree[u]) {
			dfs2(v);
		}
	}

	void dfs3(int u, vec<int>& mvs, int rem) {
		rem -= 1;
		for(int v : tree[u]) {
			if(rem <= 0) {
				return;
			}
			mvs.push_back(v);
			dfs3(v, mvs, rem);
			rem -= sz[v];
			mvs.push_back(u);
		}
	}

long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) {

	for(int i = 0; i<M; i++) {
		g[A[i]].push_back(B[i]);
		g[B[i]].push_back(A[i]);
	}

	vec<bool> vis(N);
	dfs1(0, vis);
	dfs2(0);

	long long x = 0;

	vals[P] = V;

	int cur = P;
	int cnt = 0;
	while(sz[cur] < 60) {
		cnt++;
		int cur_val = Move(par[cur]);

		cur = par[cur];

		vals[cur] = cur_val;
	}

	vec<int> mvs(0);

	dfs3(cur, mvs, 60);

	reverse(mvs.begin(), mvs.end());

	while(cnt--) mvs.pop_back();

	for(int i = 1; i<mvs.size(); i++) {
		int nxt = mvs[i];
		vals[nxt] = Move(nxt);
	}

	for(int i = 0; i<N; i++) {
		if(vals[i] != -1) {
			int bi = ind[i]%60;
			x |= (((long long)vals[i]) << bi);
		}
	}
	return x;
}
}


long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) { return ioi::Ioi(N, M, A, B, P, V, T); }

Compilation message

Ioi.cpp: In function 'long long int ioi::Ioi(int, int, int*, int*, int, int, int)':
Ioi.cpp:93:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   93 |  for(int i = 1; i<mvs.size(); i++) {
      |                 ~^~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 1812 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 17 ms 5676 KB Output is correct
2 Incorrect 17 ms 5676 KB Wrong Answer [7]
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1824 KB Output is correct
2 Correct 0 ms 1812 KB Output is correct
3 Correct 1 ms 1812 KB Output is correct
4 Correct 3 ms 2372 KB Output is correct
5 Correct 4 ms 2380 KB Output is correct
6 Correct 2 ms 2368 KB Output is correct
7 Correct 3 ms 2368 KB Output is correct
8 Correct 3 ms 2364 KB Output is correct
9 Correct 9 ms 5696 KB Output is correct
10 Correct 9 ms 5692 KB Output is correct
11 Correct 10 ms 5672 KB Output is correct
12 Correct 1 ms 1812 KB Output is correct
13 Correct 1 ms 1812 KB Output is correct
14 Correct 1 ms 1824 KB Output is correct
15 Correct 2 ms 1824 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 5676 KB Output is correct
2 Correct 18 ms 5660 KB Output is correct
3 Correct 18 ms 5664 KB Output is correct
4 Incorrect 12 ms 3984 KB Wrong Answer [7]
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 18 ms 5672 KB Output is correct
2 Correct 18 ms 5660 KB Output is correct
3 Correct 18 ms 5680 KB Output is correct
4 Incorrect 11 ms 3892 KB Wrong Answer [7]
5 Halted 0 ms 0 KB -