CSES - Datatähti 2021 loppu - Results
Submission details
Task:Etäisyydet
Sender:lady-stardust
Submission time:2021-01-23 18:48:59 +0200
Language:C++17
Status:READY
Result:29
Feedback
groupverdictscore
#1ACCEPTED29
#20
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2details
#20.01 s2details

Compiler report

input/code.cpp: In function 'bool fill(int, std::vector<int>&, int)':
input/code.cpp:25:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (c.size() == n) {
      ~~~~~~~~~^~~~

Code

#include <bits/stdc++.h>
#include <unordered_map>
#define ll long long
#define ull unsigned long long

using namespace std;

bool visited[11];
int dist[11][11];
vector<int> v[11];

void find_distance(int start, int n, int prev, int c) {
	dist[start][n] = c;
	for (auto x : v[n]) {
		if (x != prev) {
			find_distance(start, x, n, c+1);
		}
	}
}

bool fill(int x, vector<int>& c, int n) {
	c.push_back(x);
	visited[x] = true;

	if (c.size() == n) {
		return true;
	}

	for (int i = 1; i <= n; i++) {
		if (visited[i]) continue;
		if (dist[i][x] > 3) continue;
		if (fill(i, c, n)) {
			return true;
		}
	}

	visited[x] = false;
	c.pop_back();
	return false;
}


int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	
//	istringstream cin(R"(2
//10
//1 2
//2 3
//3 4
//1 5
//5 6
//6 7
//1 8
//8 9
//9 10
//7
//1 2
//2 3
//3 4
//4 5
//1 6
//6 7)");

	ll t; cin >> t;

	for (int i = 0; i < t; i++) {
		int n; cin >> n;

		for (int x = 0; x < 11; x++) {
			visited[x] = false;
			v[x] = {};
		}

		for (int j = 0; j < n - 1; j++) {
			int a, b; cin >> a >> b;
			v[a].push_back(b);
			v[b].push_back(a);
		}

		for (int j = 1; j <= n; j++) {
			find_distance(j, j, 0, 0);
		}

		for (int j = 1; j <= n; j++) {
			vector<int> c;
			fill(j, c, n);
			if (c.size()) {
				for (auto item : c) {
					cout << item << " ";
				}

				break;
			}
		}

		cout << "\n";
	}
}

Test details

Test 1

Group: 1, 2

Verdict: ACCEPTED

input
100
8
5 2
2 3
3 7
...

correct output
1 8 2 5 6 7 3 4 
1 7 2 8 3 6 4 5 
1 4 6 2 7 5 8 3 
1 8 3 2 4 7 6 5 
1 6 4 7 5 2 3 8 
...

user output
1 3 2 4 7 5 6 8 
1 3 2 8 7 5 4 6 
1 3 2 5 7 8 6 4 
1 2 3 4 5 6 7 8 
1 3 2 4 6 8 7 5 
...

Test 2

Group: 2

Verdict:

input
100
100
37 59
81 37
44 81
...

correct output
1 99 82 81 59 5 71 55 17 24 13...

user output
(empty)