Submission #260613

# Submission time Handle Problem Language Result Execution time Memory
260613 2020-08-10T15:16:25 Z Saboon Stray Cat (JOI20_stray) C++14
29 / 100
69 ms 16784 KB
#include "Anthony.h"
#include <bits/stdc++.h>

using namespace std;

const int maxn = 20'000 + 10;

int h[maxn], c[maxn];
vector<int> g[maxn];
int Q[maxn], tail, head;

int seq[] = {1, 1, 0, 0, 1, 0};
int col[maxn];

void dfs(int v, int idx = 0, int par = -1){
	for (int i = 0; i < g[v].size(); i++){
		if (g[v][i] == par){
			g[v].erase(g[v].begin()+i);
			break;
		}
	}
	if (g[v].empty())
		return;
	if (g[v].size() == 1){
		col[g[v][0]] = seq[idx];
		dfs(g[v][0], (idx+1)%6, v);
		return;
	}
	for (auto u : g[v]){
		col[u] = 1-col[v];
		dfs(u, 0, v);
	}
}

void bfs(int v){
	memset(h, -1, sizeof h);
	Q[head++] = v;
	h[v] = 0;
	while (tail < head){
		v = Q[tail++];
		for (auto u : g[v])
			if (h[u] == -1)
				h[u] = h[v]+1, Q[head++] = u;
	}
}

vector<int> Mark(int n, int m, int A, int B, vector<int> U, vector<int> V) {
	vector<int> X(m);
	for (int i = 0; i < m; i++){
		g[U[i]].push_back(V[i]);
		g[V[i]].push_back(U[i]);
	}
	bfs(0);
	if (A >= 3){
		for (int i = 0; i < m; i++){
			int v = V[i], u = U[i];
			if (h[v] == h[u])
				X[i] = h[v]%3;
			else
				X[i] = (max(h[v],h[u])+2)%3;
		}
		return X;
	}
	dfs(0);
	for (int i = 0; i < m; i++){
		int v = V[i], u = U[i];
		if (h[v] > h[u])
			X[i] = col[v];
		else
			X[i] = col[u];
	}
	return X;
}
#include "Catherine.h"
#include <bits/stdc++.h>

using namespace std;

int A, B, last = -1, sure = 0;
string s[] = {"111100", "021001", "110010", "200101", "111011", "110110"};
string now;
bool first;

void Init(int a, int b) {
	A = a, B = b;
	last = -1, sure = 0;
	now.clear();
	first = true;
}


int Move(vector<int> y) {
	if (A >= 3){
		int a = -1, b = -1;
		for (int j = 0; j < A; ++j) {
			if (y[j] != 0){
				if (a == -1)
					a = j;
				else
					b = j;
			}
		}
		if (b == -1)
			return a;
		if (a+1 == b)
			return a;
		return b;
	}
	int deg = y[0] + y[1] + (last != -1);
	if (deg == 1){ // we are in a leaf
		sure = true;
		if (last != -1)
			return -1;
		assert(y[y[1]==1] > 0);
		return last = (y[1] == 1);
	}
	if (deg > 2){
		sure = true;
		int nex = (y[1] + (last == 1) == 1);
		if (last == nex)
			return -1;
		assert(y[nex] > 0);
		return last = nex;
	}
	if (sure){
		assert(y[y[1]==1] > 0);
		return last = (y[1] == 1);
	}
	if (first){
		now += (char)(y[0]+'0');
		now += (char)(y[1]+'0');
		now += (char)((y[1]>0)+'0');
		first = false;
		assert(y[y[1]>0] > 0);
		return last = (y[1] > 0);
	}
	now += (char)((y[1]==1)+'0');
	if (now.size() == 6){
		bool found = 0;
		for (int j = 0; j < 6; j++)
			if (now == s[j])
				found = 1;
		sure = 1;
		if (found)
			return -1;
		assert(y[y[1]==1] > 0);
		return last = (y[1] == 1);
	}
	assert(y[y[1]==1] > 0);
	return last = (y[1] == 1);
}

Compilation message

Anthony.cpp: In function 'void dfs(int, int, int)':
Anthony.cpp:16:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < g[v].size(); i++){
                  ~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 51 ms 15484 KB Output is correct
2 Correct 1 ms 1792 KB Output is correct
3 Correct 46 ms 14964 KB Output is correct
4 Correct 64 ms 16756 KB Output is correct
5 Correct 64 ms 16784 KB Output is correct
6 Correct 49 ms 15348 KB Output is correct
7 Correct 54 ms 15488 KB Output is correct
8 Correct 67 ms 16124 KB Output is correct
9 Correct 67 ms 16140 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 51 ms 15484 KB Output is correct
2 Correct 1 ms 1792 KB Output is correct
3 Correct 46 ms 14964 KB Output is correct
4 Correct 64 ms 16756 KB Output is correct
5 Correct 64 ms 16784 KB Output is correct
6 Correct 49 ms 15348 KB Output is correct
7 Correct 54 ms 15488 KB Output is correct
8 Correct 67 ms 16124 KB Output is correct
9 Correct 67 ms 16140 KB Output is correct
10 Correct 44 ms 13560 KB Output is correct
11 Correct 46 ms 13848 KB Output is correct
12 Correct 51 ms 13552 KB Output is correct
13 Correct 44 ms 13596 KB Output is correct
14 Correct 45 ms 13816 KB Output is correct
15 Correct 52 ms 14324 KB Output is correct
16 Correct 55 ms 16404 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 46 ms 13212 KB Output is correct
2 Correct 1 ms 1856 KB Output is correct
3 Correct 39 ms 12860 KB Output is correct
4 Correct 59 ms 14504 KB Output is correct
5 Correct 59 ms 14748 KB Output is correct
6 Correct 46 ms 13440 KB Output is correct
7 Correct 45 ms 13180 KB Output is correct
8 Correct 54 ms 13972 KB Output is correct
9 Correct 53 ms 13804 KB Output is correct
10 Correct 52 ms 13972 KB Output is correct
11 Correct 51 ms 13716 KB Output is correct
12 Correct 51 ms 13716 KB Output is correct
13 Correct 51 ms 13716 KB Output is correct
14 Correct 59 ms 13948 KB Output is correct
15 Correct 55 ms 14100 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 46 ms 13212 KB Output is correct
2 Correct 1 ms 1856 KB Output is correct
3 Correct 39 ms 12860 KB Output is correct
4 Correct 59 ms 14504 KB Output is correct
5 Correct 59 ms 14748 KB Output is correct
6 Correct 46 ms 13440 KB Output is correct
7 Correct 45 ms 13180 KB Output is correct
8 Correct 54 ms 13972 KB Output is correct
9 Correct 53 ms 13804 KB Output is correct
10 Correct 52 ms 13972 KB Output is correct
11 Correct 51 ms 13716 KB Output is correct
12 Correct 51 ms 13716 KB Output is correct
13 Correct 51 ms 13716 KB Output is correct
14 Correct 59 ms 13948 KB Output is correct
15 Correct 55 ms 14100 KB Output is correct
16 Correct 40 ms 11640 KB Output is correct
17 Correct 45 ms 11952 KB Output is correct
18 Correct 48 ms 11732 KB Output is correct
19 Correct 45 ms 11740 KB Output is correct
20 Correct 57 ms 12364 KB Output is correct
21 Correct 48 ms 11984 KB Output is correct
22 Correct 62 ms 14204 KB Output is correct
23 Correct 47 ms 11868 KB Output is correct
24 Correct 47 ms 11768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1792 KB Output is correct
2 Correct 1 ms 1792 KB Output is correct
3 Correct 2 ms 1792 KB Output is correct
4 Correct 3 ms 1792 KB Output is correct
5 Correct 3 ms 1792 KB Output is correct
6 Correct 2 ms 1792 KB Output is correct
7 Correct 2 ms 1792 KB Output is correct
8 Correct 2 ms 1792 KB Output is correct
9 Correct 2 ms 1792 KB Output is correct
10 Correct 2 ms 1792 KB Output is correct
11 Correct 2 ms 1792 KB Output is correct
12 Correct 2 ms 1792 KB Output is correct
13 Correct 2 ms 1792 KB Output is correct
14 Correct 2 ms 1792 KB Output is correct
15 Correct 2 ms 1792 KB Output is correct
16 Correct 2 ms 1792 KB Output is correct
17 Correct 2 ms 1792 KB Output is correct
18 Correct 2 ms 1792 KB Output is correct
19 Correct 2 ms 1792 KB Output is correct
20 Correct 2 ms 1792 KB Output is correct
21 Correct 2 ms 1792 KB Output is correct
22 Correct 2 ms 1792 KB Output is correct
23 Correct 2 ms 1856 KB Output is correct
24 Correct 2 ms 2048 KB Output is correct
25 Correct 2 ms 1792 KB Output is correct
26 Correct 2 ms 1792 KB Output is correct
27 Correct 2 ms 1792 KB Output is correct
28 Correct 2 ms 1792 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 41 ms 11432 KB Output is correct
2 Correct 52 ms 12040 KB Output is correct
3 Correct 1 ms 1792 KB Output is correct
4 Correct 38 ms 11380 KB Output is correct
5 Correct 54 ms 12892 KB Output is correct
6 Correct 55 ms 12788 KB Output is correct
7 Correct 45 ms 11984 KB Output is correct
8 Correct 54 ms 11772 KB Output is correct
9 Correct 63 ms 12736 KB Output is correct
10 Correct 57 ms 12708 KB Output is correct
11 Correct 67 ms 12868 KB Output is correct
12 Correct 60 ms 12668 KB Output is correct
13 Correct 63 ms 12816 KB Output is correct
14 Correct 59 ms 12788 KB Output is correct
15 Correct 61 ms 12876 KB Output is correct
16 Correct 64 ms 12872 KB Output is correct
17 Correct 60 ms 12492 KB Output is correct
18 Correct 64 ms 12488 KB Output is correct
19 Correct 61 ms 12404 KB Output is correct
20 Correct 66 ms 12404 KB Output is correct
21 Correct 63 ms 12496 KB Output is correct
22 Correct 53 ms 12284 KB Output is correct
23 Correct 49 ms 11716 KB Output is correct
24 Correct 41 ms 11432 KB Output is correct
25 Correct 44 ms 11704 KB Output is correct
26 Correct 43 ms 11636 KB Output is correct
27 Correct 52 ms 12560 KB Output is correct
28 Correct 69 ms 12156 KB Output is correct
29 Correct 56 ms 12284 KB Output is correct
30 Correct 49 ms 12156 KB Output is correct
31 Correct 46 ms 11448 KB Output is correct
32 Correct 43 ms 11444 KB Output is correct
33 Correct 44 ms 11508 KB Output is correct
34 Correct 45 ms 11516 KB Output is correct
35 Incorrect 47 ms 12344 KB Wrong Answer [6]
36 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 41 ms 11428 KB Output is correct
2 Correct 46 ms 11900 KB Output is correct
3 Correct 1 ms 1792 KB Output is correct
4 Correct 41 ms 11464 KB Output is correct
5 Correct 56 ms 12744 KB Output is correct
6 Correct 58 ms 12756 KB Output is correct
7 Correct 45 ms 11900 KB Output is correct
8 Correct 45 ms 11864 KB Output is correct
9 Correct 55 ms 12864 KB Output is correct
10 Correct 56 ms 12680 KB Output is correct
11 Correct 56 ms 12748 KB Output is correct
12 Correct 60 ms 12708 KB Output is correct
13 Correct 60 ms 12660 KB Output is correct
14 Correct 58 ms 12660 KB Output is correct
15 Correct 60 ms 12744 KB Output is correct
16 Correct 62 ms 12752 KB Output is correct
17 Correct 55 ms 12496 KB Output is correct
18 Correct 54 ms 12284 KB Output is correct
19 Correct 59 ms 12632 KB Output is correct
20 Correct 60 ms 12492 KB Output is correct
21 Correct 53 ms 12496 KB Output is correct
22 Correct 59 ms 12412 KB Output is correct
23 Correct 53 ms 11416 KB Output is correct
24 Correct 43 ms 11388 KB Output is correct
25 Correct 43 ms 11700 KB Output is correct
26 Correct 44 ms 11644 KB Output is correct
27 Correct 49 ms 12148 KB Output is correct
28 Correct 49 ms 12276 KB Output is correct
29 Correct 57 ms 12156 KB Output is correct
30 Correct 50 ms 12156 KB Output is correct
31 Correct 47 ms 11388 KB Output is correct
32 Correct 51 ms 11432 KB Output is correct
33 Correct 45 ms 11516 KB Output is correct
34 Correct 46 ms 11676 KB Output is correct
35 Correct 57 ms 12156 KB Output is correct
36 Correct 49 ms 12188 KB Output is correct
37 Correct 49 ms 12200 KB Output is correct
38 Correct 48 ms 12204 KB Output is correct
39 Correct 51 ms 12200 KB Output is correct
40 Correct 49 ms 12148 KB Output is correct
41 Correct 53 ms 12648 KB Output is correct
42 Correct 55 ms 12760 KB Output is correct
43 Correct 52 ms 12660 KB Output is correct
44 Correct 52 ms 12776 KB Output is correct
45 Correct 52 ms 12656 KB Output is correct
46 Correct 54 ms 12388 KB Output is correct
47 Correct 49 ms 11928 KB Output is correct
48 Correct 48 ms 11900 KB Output is correct
49 Correct 47 ms 11904 KB Output is correct
50 Correct 52 ms 12032 KB Output is correct
51 Correct 44 ms 11644 KB Output is correct
52 Correct 44 ms 12012 KB Output is correct
53 Correct 44 ms 11724 KB Output is correct
54 Correct 46 ms 11752 KB Output is correct
55 Correct 47 ms 11848 KB Output is correct
56 Correct 50 ms 11636 KB Output is correct
57 Correct 49 ms 11388 KB Output is correct
58 Correct 46 ms 11388 KB Output is correct
59 Correct 58 ms 11840 KB Output is correct
60 Correct 46 ms 11852 KB Output is correct