Submission #838441

# Submission time Handle Problem Language Result Execution time Memory
838441 2023-08-26T23:50:09 Z thimote75 Toy Train (IOI17_train) C++14
0 / 100
2000 ms 1620 KB
#include "train.h"
#include <bits/stdc++.h>

using namespace std;

using idata = vector<int>;
using bdata = vector<bool>;
using igrid = vector<idata>;

idata controller, charger;
int N, M;

igrid roads;

idata visited; int stage = 1;
bdata status;

bool dfs (int msk, int depth) {
	int node = msk >> 1;
	int type = msk & 1;

	if (visited[msk] >= stage) return status[msk];
	visited[msk] = stage;

	if (depth != 0 && type == 1 && visited[msk - 1] == stage) {
		status[msk] = true;
		visited[msk] = stage + 1;
		return true;
	}

	status[msk] = false;

	bool rstatus = controller[node] == 0;
	for (int next : roads[node]) {
		int nxt_msk = next * 2 + type;

		bool result = (dfs(nxt_msk, depth + 1)
		 || (
			charger[node] == 1
			&& type == 0
			&& dfs(nxt_msk + 1, 1)
		 ));
		
		if (controller[node] == 1 && result)
			rstatus = true;
		if (controller[node] == 0 && !result)
			rstatus = false;
	}

	status[msk] = rstatus;
	visited[msk] = stage + 1;
	return status[msk];
}

idata who_wins(idata _controller, idata _charger, idata u, idata v) {
	N = _controller.size(); M = u.size();

	controller = _controller;
	charger    = _charger;

	roads.resize(N);

	for (int i = 0; i < M; i ++)
		roads[u[i]].push_back(v[i]);

	visited.resize(2 * N);
	status .resize(2 * N);

	idata answer(N, false);
	for (int i = 0; i < N; i ++) {
		answer[i] = dfs(2 * i, 1);
		stage += 2;
	}

	return answer;
}
# Verdict Execution time Memory Grader output
1 Incorrect 409 ms 1376 KB 3rd lines differ - on the 42nd token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB 3rd lines differ - on the 9th token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 312 ms 1620 KB Output is correct
2 Correct 367 ms 1556 KB Output is correct
3 Correct 440 ms 1496 KB Output is correct
4 Execution timed out 2059 ms 1404 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1485 ms 1208 KB 3rd lines differ - on the 235th token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2072 ms 1364 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 409 ms 1376 KB 3rd lines differ - on the 42nd token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -