답안 #925444

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
925444 2024-02-11T16:16:13 Z adaawf 길고양이 (JOI20_stray) C++14
15 / 100
3000 ms 22400 KB
#include "Anthony.h"
#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int>> g[200005];
int f[200005], dx[] = {1, 0, 1, 0, 0, 1}, dd[200005];
vector<int> res;
void dfs(int x, int p) {
    int c = 0;
    for (auto w : g[x]) {
        if (w.second == p) continue;
        c++;
        if (c == 1) {
            for (auto w : g[x]) {
                if (w.second == p) continue;
                res[w.second] = dx[f[x]];
                f[w.first] = (f[x] + 1) % 6;
                dfs(w.first, w.second);
            }
        }
        else {
            for (auto w : g[x]) {
                if (w.second == p) continue;
                if (p == -1) res[w.second] = 0;
                else res[w.second] = res[p] ^ 1;
                if (res[w.second] == 1) f[w.first] = 1;
                else f[w.first] = 2;
                dfs(w.first, w.second);
            }
        }
    }
}
void bfs() {
    queue<int> q;
    q.push(0);
    memset(dd, 0, sizeof dd);
    dd[0] = 1;
    int d = 0;
    while (!q.empty()) {
        int h = q.size();
        for (int i = 0; i < h; i++) {
            int p = q.front();
            q.pop();
            f[p] = d;
            for (auto w : g[p]) {
                if (dd[w.first] == 0) {
                    dd[w.first] = 1;
                    q.push(w.first);
                }
            }
        }
        d++;
    }
}
vector<int> Mark(int N, int M, int A, int B, vector<int> U, vector<int> V) {
	res.resize(M);
	for (int i = 0; i < M; i++) {
		g[U[i]].push_back({V[i], i});
		g[V[i]].push_back({U[i], i});
	}
	if (A == 2) {
		for (int i = 0; i < N; i++) f[i] = 0;
		dfs(0, -1);
	}
	else {
		bfs();
		for (int i = 0; i < M; i++) {
			res[i] = min(f[U[i]], f[V[i]]) % 3;
		}
	}
	return res;
}
#include "Catherine.h"
#include <bits/stdc++.h>
using namespace std;
int A, B, s = 1, flag = 0, k = 0, c = 0;
int dd[1005];
vector<int> v(5, 0);
void Init(int a, int b) {
    A = a;
    B = b;
}
int Move(vector<int> y) {
    dd[5] = dd[18] = dd[25] = dd[12] = dd[22] = dd[11] = 1;
  	if (A == 2) {
		if (s != 0) {
			s = 0;
			if (y[0] + y[1] != 2) {
				if (min(y[0], y[1]) == 0) {
                    if (y[0] < y[1]) k = 1;
                    else k = 0;
				}
				else {
                    if (y[0] > y[1]) k = 1;
                    else k = 0;
				}
				return k;
			}
			else {
				flag = 1;
                if (y[0] < y[1]) k = 1;
                else k = 0;
				y[k]--;
                if (y[0] < y[1]) v[c++] = 1;
                else v[c++] = 0;
				v[c++] = k;
				return k;
			}
		}
		else {
			if (flag == 0) {
				if (min(y[0], y[1]) == 0) {
                    if (y[0] < y[1]) k = 1;
                    else k = 0;
				}
				else k ^= 1;
				return k;
			}
			else {
				if (y[0] + y[1] != 1) {
					flag = c = 0;
					if (min(y[0], y[1]) == 0) return -1;
                    k ^= 1;
                    return k;
				}
                if (y[0] < y[1]) k = 1;
                else k = 0;
                v[c++] = k;
                if (c == 5) {
                    flag = 0;
                    int d = 0;
                    for (int i = 0; i < 5; i++) d += v[i] * (1 << i);
                    if (dd[d] == 0) {
                        return k;
                    }
                    k = v[3];
                    return -1;
                }
                return k;
			}
		}
  	}
	else {
		vector<int> v;
		for (int i = 0; i < 3; i++) {
            if (y[i] != 0) {
                v.push_back(i);
            }
		}
		if (v.size() == 1) {
            return v[0];
		}
        if (v[0] == 0) {
            if (v[1] == 1) return 0;
            return 2;
        }
        return 1;
	}
}
# 결과 실행 시간 메모리 Grader output
1 Correct 37 ms 21336 KB Output is correct
2 Correct 2 ms 6940 KB Output is correct
3 Correct 24 ms 20852 KB Output is correct
4 Correct 35 ms 22396 KB Output is correct
5 Correct 35 ms 22400 KB Output is correct
6 Correct 28 ms 21116 KB Output is correct
7 Correct 28 ms 21136 KB Output is correct
8 Correct 34 ms 21872 KB Output is correct
9 Correct 45 ms 21804 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 37 ms 21336 KB Output is correct
2 Correct 2 ms 6940 KB Output is correct
3 Correct 24 ms 20852 KB Output is correct
4 Correct 35 ms 22396 KB Output is correct
5 Correct 35 ms 22400 KB Output is correct
6 Correct 28 ms 21116 KB Output is correct
7 Correct 28 ms 21136 KB Output is correct
8 Correct 34 ms 21872 KB Output is correct
9 Correct 45 ms 21804 KB Output is correct
10 Correct 28 ms 19292 KB Output is correct
11 Correct 27 ms 19312 KB Output is correct
12 Correct 27 ms 19284 KB Output is correct
13 Correct 26 ms 19248 KB Output is correct
14 Correct 30 ms 19580 KB Output is correct
15 Correct 33 ms 19820 KB Output is correct
16 Correct 36 ms 22076 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 33 ms 18856 KB Output is correct
2 Correct 2 ms 6940 KB Output is correct
3 Correct 25 ms 18544 KB Output is correct
4 Correct 41 ms 20304 KB Output is correct
5 Correct 33 ms 20312 KB Output is correct
6 Correct 30 ms 19024 KB Output is correct
7 Correct 27 ms 18812 KB Output is correct
8 Correct 33 ms 19584 KB Output is correct
9 Correct 31 ms 19568 KB Output is correct
10 Correct 31 ms 19312 KB Output is correct
11 Correct 28 ms 19324 KB Output is correct
12 Correct 30 ms 19236 KB Output is correct
13 Correct 31 ms 19260 KB Output is correct
14 Correct 34 ms 19508 KB Output is correct
15 Correct 34 ms 19500 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 33 ms 18856 KB Output is correct
2 Correct 2 ms 6940 KB Output is correct
3 Correct 25 ms 18544 KB Output is correct
4 Correct 41 ms 20304 KB Output is correct
5 Correct 33 ms 20312 KB Output is correct
6 Correct 30 ms 19024 KB Output is correct
7 Correct 27 ms 18812 KB Output is correct
8 Correct 33 ms 19584 KB Output is correct
9 Correct 31 ms 19568 KB Output is correct
10 Correct 31 ms 19312 KB Output is correct
11 Correct 28 ms 19324 KB Output is correct
12 Correct 30 ms 19236 KB Output is correct
13 Correct 31 ms 19260 KB Output is correct
14 Correct 34 ms 19508 KB Output is correct
15 Correct 34 ms 19500 KB Output is correct
16 Correct 25 ms 17504 KB Output is correct
17 Correct 26 ms 17396 KB Output is correct
18 Correct 30 ms 17268 KB Output is correct
19 Correct 32 ms 17660 KB Output is correct
20 Correct 33 ms 17884 KB Output is correct
21 Correct 28 ms 17784 KB Output is correct
22 Correct 35 ms 19780 KB Output is correct
23 Correct 26 ms 17504 KB Output is correct
24 Correct 26 ms 17524 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 59 ms 7148 KB Output is correct
2 Correct 2 ms 6940 KB Output is correct
3 Correct 91 ms 7116 KB Output is correct
4 Correct 3 ms 7200 KB Output is correct
5 Correct 4 ms 7196 KB Output is correct
6 Correct 3 ms 7184 KB Output is correct
7 Correct 3 ms 7200 KB Output is correct
8 Correct 4 ms 7192 KB Output is correct
9 Correct 2 ms 7192 KB Output is correct
10 Correct 3 ms 7192 KB Output is correct
11 Correct 3 ms 7200 KB Output is correct
12 Execution timed out 3033 ms 6488 KB Time limit exceeded
13 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3038 ms 7516 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3056 ms 7516 KB Time limit exceeded
2 Halted 0 ms 0 KB -