Submission #1055007

# Submission time Handle Problem Language Result Execution time Memory
1055007 2024-08-12T13:52:22 Z Gromp15 Stations (IOI20_stations) C++17
5 / 100
495 ms 876 KB
#include <bits/stdc++.h>
#include "stations.h"
using namespace std;

bool line = 1;
bool binary = 1;

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
	vector<vector<int>> adj(n);
	for (int i = 0; i < n-1; i++) {
		if (u[i] > v[i]) swap(u[i], v[i]);
		binary &= (v[i] + 1) / 2 == (u[i] + 1);
		adj[u[i]].push_back(v[i]);
		adj[v[i]].push_back(u[i]);
	}
	int r = -1;
	for (int i = 0; i < n; i++) {
		if (adj[i].size() == 1) r = i;
		line &= adj[i].size() <= 2;
	}
	if (line) {
		vector<int> ans(n);
		int t = 0;
		auto dfs = [&](auto&& s, int v, int p) -> void {
			ans[v] = t++;
			for (int u : adj[v]) if (u != p) s(s, u, v);
		};
		dfs(dfs, r, -1);
		return ans;
	}
	if (binary) {
		vector<int> ans(n);
		iota(ans.begin(), ans.end(), 0);
		return ans;
	}
	return {};
}

int find_next_station(int s, int t, std::vector<int> c) {
	if (line) {
		for (int x : c) if ((x-s)*(x-t) <= 0) return x;
	}
	if (binary) {
		int ls = 31 - __builtin_clz(s), lt = 31 - __builtin_clz(t);
		if (ls > lt) {
			for (int x : c) if (x < s) return x;
			assert(0);
		}
		else {
			for (int x : c) if (x > s) {
				bool F = 0;
				for (int tmp = t+1; tmp; tmp /= 2) {
					if (tmp == x+1) {
						F = 1;
						break;
					}
				}
				if (F) return x;
			}
			for (int x : c) if (x < s) return x;
			assert(0);
		}
	}
	assert(0);
}
# Verdict Execution time Memory Grader output
1 Correct 283 ms 684 KB Output is correct
2 Correct 259 ms 684 KB Output is correct
3 Correct 469 ms 684 KB Output is correct
4 Correct 324 ms 684 KB Output is correct
5 Correct 253 ms 684 KB Output is correct
6 Correct 230 ms 768 KB Output is correct
7 Correct 232 ms 772 KB Output is correct
8 Correct 1 ms 764 KB Output is correct
9 Correct 1 ms 768 KB Output is correct
10 Correct 1 ms 768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 248 ms 768 KB Wrong query response.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 274 ms 684 KB Output is correct
2 Correct 236 ms 684 KB Output is correct
3 Correct 495 ms 780 KB Output is correct
4 Correct 376 ms 684 KB Output is correct
5 Correct 335 ms 684 KB Output is correct
6 Correct 249 ms 684 KB Output is correct
7 Correct 273 ms 684 KB Output is correct
8 Correct 0 ms 768 KB Output is correct
9 Correct 2 ms 764 KB Output is correct
10 Correct 0 ms 776 KB Output is correct
11 Incorrect 0 ms 432 KB Invalid length of array as the response of 'label'. scenario=1, n=4, len=0
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 473 ms 684 KB Output is correct
2 Correct 334 ms 684 KB Output is correct
3 Correct 303 ms 684 KB Output is correct
4 Correct 2 ms 768 KB Output is correct
5 Correct 1 ms 768 KB Output is correct
6 Correct 0 ms 768 KB Output is correct
7 Incorrect 0 ms 344 KB Invalid length of array as the response of 'label'. scenario=0, n=4, len=0
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 262 ms 684 KB Output is correct
2 Correct 219 ms 876 KB Output is correct
3 Correct 446 ms 768 KB Output is correct
4 Correct 358 ms 684 KB Output is correct
5 Correct 304 ms 684 KB Output is correct
6 Correct 237 ms 768 KB Output is correct
7 Correct 260 ms 684 KB Output is correct
8 Correct 1 ms 768 KB Output is correct
9 Correct 2 ms 768 KB Output is correct
10 Correct 0 ms 768 KB Output is correct
11 Incorrect 272 ms 772 KB Wrong query response.
12 Halted 0 ms 0 KB -