답안 #975711

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
975711 2024-05-05T18:52:31 Z ShaShi 게임 (APIO22_game) C++17
2 / 100
11 ms 51704 KB
#include "game.h"
#include <bits/stdc++.h>
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define pb push_back
#define mp make_pair
#define pii pair<int, int>



using namespace std;

typedef long long ll;


const int MAXN = (int)1e6 + 7;
const int LG = 60;


int dp[MAXN], pd[MAXN];
vector<int> adj[MAXN][2];
bool seen[MAXN], flag;
int N, K, X;


bool check(int x) {
	if (dp[x] <= pd[x]) return 1;
	return 0;
}


void init(int n, int k) {
	N = n;
	K = k;

	for (int i=0; i<N; i++) dp[i] = pd[i] = -1;
	fill(seen, seen+N+1, 1);
}


void DFS(int v, bool b) {
	if (flag) return;
	seen[v] = 1;

	if (b) dp[v] = (dp[v] == -1? X : min(dp[v], X));
	else pd[v] = (pd[v] == -1? X : max(pd[v], X));

	if (dp[v] <= pd[v]) flag = 1;

	for (int u:adj[v][b]) if (!seen[u]) DFS(u, b);
}


int add_teleporter(int u, int v) {
	if (u < K && v < K) {
		if (u >= v) return 1;
		return 0;
	}

	fill(seen+K+1, seen+N+1, 0);
	flag = 0;

	if (u < K) {
		X = u;
		DFS(v, 0);
	} else if (v < K) {
		X = v;
		DFS(u, 1);
	} else {
		adj[u][0].pb(v); adj[v][1].pb(u);
		X = pd[u];
		DFS(u, 0);
	}

	// for (int i=K; i<N; i++) if (dp[i] != -1 && pd[i] != -1 && dp[i] <= pd[i]) return 1

	return flag;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 51544 KB Output is correct
2 Correct 11 ms 51544 KB Output is correct
3 Correct 11 ms 51544 KB Output is correct
4 Correct 11 ms 51684 KB Output is correct
5 Correct 11 ms 51704 KB Output is correct
6 Correct 11 ms 51544 KB Output is correct
7 Correct 11 ms 51544 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 51544 KB Output is correct
2 Correct 11 ms 51544 KB Output is correct
3 Correct 11 ms 51544 KB Output is correct
4 Correct 11 ms 51684 KB Output is correct
5 Correct 11 ms 51704 KB Output is correct
6 Correct 11 ms 51544 KB Output is correct
7 Correct 11 ms 51544 KB Output is correct
8 Incorrect 11 ms 51544 KB Wrong Answer[1]
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 51544 KB Output is correct
2 Correct 11 ms 51544 KB Output is correct
3 Correct 11 ms 51544 KB Output is correct
4 Correct 11 ms 51684 KB Output is correct
5 Correct 11 ms 51704 KB Output is correct
6 Correct 11 ms 51544 KB Output is correct
7 Correct 11 ms 51544 KB Output is correct
8 Incorrect 11 ms 51544 KB Wrong Answer[1]
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 51544 KB Output is correct
2 Correct 11 ms 51544 KB Output is correct
3 Correct 11 ms 51544 KB Output is correct
4 Correct 11 ms 51684 KB Output is correct
5 Correct 11 ms 51704 KB Output is correct
6 Correct 11 ms 51544 KB Output is correct
7 Correct 11 ms 51544 KB Output is correct
8 Incorrect 11 ms 51544 KB Wrong Answer[1]
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 51544 KB Output is correct
2 Correct 11 ms 51544 KB Output is correct
3 Correct 11 ms 51544 KB Output is correct
4 Correct 11 ms 51684 KB Output is correct
5 Correct 11 ms 51704 KB Output is correct
6 Correct 11 ms 51544 KB Output is correct
7 Correct 11 ms 51544 KB Output is correct
8 Incorrect 11 ms 51544 KB Wrong Answer[1]
9 Halted 0 ms 0 KB -