Submission #598680

# Submission time Handle Problem Language Result Execution time Memory
598680 2022-07-18T17:30:18 Z kingfran1907 Speedrun (RMI21_speedrun) C++14
100 / 100
280 ms 972 KB
#include "speedrun.h"
#include <bits/stdc++.h>

using namespace std;
const int maxn = 1010;

vector< int > graph[maxn];
vector< int > sol;
bool bio[maxn];
int parr[maxn];

void dfs(int x, int parr) {
	sol.push_back(x);
	::parr[x] = parr;
	for (int tren : graph[x]) {
		if (tren != parr) dfs(tren, x);
	}
}

void assignHints(int subtask, int N, int A[], int B[]) {
	for (int i = 1; i < N; i++) {
		graph[A[i]].push_back(B[i]);
		graph[B[i]].push_back(A[i]);
	}
	dfs(1, 0);

	setHintLen(20);
	for (int i = 0; i < sol.size(); i++) {
		int tren = sol[i];
		int r = sol[(i + 1) % sol.size()];
		int par = parr[tren];

		for (int i = 0; i < 10; i++) 
			setHint(tren, i + 1, r & (1 << i));
		for (int i = 0; i < 10; i++)
			setHint(tren, i + 11, par & (1 << i));
	}
}

void speedrun(int subtask, int N, int start) {
	memset(bio, false, sizeof bio);
	bio[start] = true;

	for (int t = 1; t < N; t++) {
		int nex = 0;
		for (int i = 0; i < 10; i++)
			nex |= getHint(i + 1) << i;
		while (!goTo(nex)) {
			int parr = 0;
			for (int i = 0; i < 10; i++)
				parr |= (getHint(i + 11) << i);
			assert(goTo(parr));
			start = parr;
		}
		start = nex;
	}
}

Compilation message

speedrun.cpp: In function 'void assignHints(int, int, int*, int*)':
speedrun.cpp:28:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |  for (int i = 0; i < sol.size(); i++) {
      |                  ~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 104 ms 744 KB Output is correct
2 Correct 193 ms 672 KB Output is correct
3 Correct 198 ms 732 KB Output is correct
4 Correct 167 ms 700 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 183 ms 720 KB Output is correct
2 Correct 214 ms 672 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 120 ms 708 KB Output is correct
2 Correct 102 ms 792 KB Output is correct
3 Correct 208 ms 728 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 196 ms 712 KB Output is correct
2 Correct 193 ms 804 KB Output is correct
3 Correct 192 ms 720 KB Output is correct
4 Correct 143 ms 764 KB Output is correct
5 Correct 147 ms 728 KB Output is correct
6 Correct 199 ms 680 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 217 ms 972 KB Output is correct
2 Correct 208 ms 700 KB Output is correct
3 Correct 191 ms 832 KB Output is correct
4 Correct 174 ms 700 KB Output is correct
5 Correct 107 ms 756 KB Output is correct
6 Correct 280 ms 716 KB Output is correct
7 Correct 244 ms 712 KB Output is correct