Submission #544610

# Submission time Handle Problem Language Result Execution time Memory
544610 2022-04-02T13:34:38 Z rainboy Cop and Robber (BOI14_coprobber) C++
Compilation error
0 ms 0 KB
#include <iostream>

using namespace std;

#define MAX_N	500

// modify the following functions
// you can define global variables and functions

int qu[MAX_N * MAX_N * 2], dd[MAX_N][MAX_N], nxt[MAX_N][MAX_N];
int i_;

int start(int N, bool A[MAX_N][MAX_N]) {
	int i, j, k;
	for (i = 0; i < N; i++)
		for (j = 0; j < N; j++)
			nxt[i][j] = -1;
	int head = 0, cnt = 0;
	for (j = 0; j < N; j++) {
		int d = 0;
		for (k = 0; k < N; k++)
			if (A[j][k])
				d++;
		for (i = 0; i < N; i++)
			if (i == j)
				qu[head + cnt++] = (i * N + j) * 2 + 1;
			else
				dd[i][j] = d;
	}
	while (cnt) {
		int ijt = qu[cnt--, head++], i = ijt / 2 / N, j = ijt / 2 % N, t = ijt % 2;
		if (t == 1) {
			for (k = 0; k < N; k++)
				if ((k == i || A[k][i]) && nxt[k][j] == -1)
					nxt[k][j] = i, qu[head + cnt++] = (k * N + j) * 2 + 0;
		} else {
			for (k = 0; k < N; k++)
				if (A[k][j] && --dd[i][k] == 0)
					qu[head + cnt++] = (i * N + k) * 2 + 1;
		}
	}
	return head == N * N * 2 ? 0 : -1;
}

int nextMove(int R) {
	return (i_ = nxt[i_][R]);
}

// don't modify the main function
int main() {
	int N;
	cin >> N;
	bool A[MAX_N][MAX_N];
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < N; j++) {
			cin >> A[i][j];
		}
	}
	int P = start(N,A);
	cout << P << endl;
	if (P == -1)
		return 0;
	int R;
	cin >> R;
	while (true) {
		if (P == R) break;
		P = nextMove(R);
		cout << P << endl;
		if (P == R) break;
		cin >> R;
	}
}

Compilation message

/usr/bin/ld: /tmp/cckrjiLF.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccZtp4WF.o:coprobber.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status