Submission #150760

# Submission time Handle Problem Language Result Execution time Memory
150760 2019-09-01T08:54:04 Z 준표야 함수컵은 캐리해줄거지?(#3588, Acka, spectaclehong, heiler) Bulb Game (FXCUP4_bulb) C++17
0 / 100
6 ms 4984 KB
#include "bulb.h"
#include <vector>
#include <string.h>
#include <algorithm>
using namespace std;

const int MAXN = 300003;
int dp[MAXN][2][2];

int dfs(int cur, int f, int t, vector<int> &L, vector<int> &R) {
	
	if(cur<0) {
		return cur==-1;
	}
	
	int &ret = dp[MAXN][f][t%2];
	if(ret!=-1) return ret;
	
	ret = 0;
	if(!f) {
		if(t) {
			ret |= max(dfs(L[cur], !f, t, L, R), 
			dfs(L[cur], f, (t+1)%2, L, R)
			);
		}
		else {
			ret |= min(dfs(L[cur], !f, t, L, R), 
			dfs(L[cur], f, (t+1)%2, L, R)
			);
		}
		
	}
	else {
		if(t) {
			ret |= max(dfs(L[cur], !f, (t+1)%2, L, R), 
			dfs(L[cur], f, (t+2)%2, L, R)
			);
		}
		else {
			ret |= min(dfs(L[cur], !f, (t+1)%2, L, R), 
			dfs(L[cur], f, (t+2)%2, L, R)
			);
		}
	}
	
	if(!f) {
		if(t) {
			ret |= max(dfs(R[cur], !f, (t+1)%2, L, R), 
			dfs(R[cur], f, (t+2)%2, L, R)
			);
		}
		else {
			ret |= min(dfs(R[cur], !f, (t+1)%2, L, R), 
			dfs(R[cur], f, (t+2)%2, L, R)
			);
		}
		
	}
	else {
		if(t) {
			ret |= max(dfs(R[cur], !f, t, L, R), 
			dfs(R[cur], f, (t+1)%2, L, R)
			);
		}
		else {
			ret |= min(dfs(R[cur], !f, t, L, R), 
			dfs(R[cur], f, (t+1)%2, L, R)
			);
		}
	}
	
	return ret;
}

int FindWinner(int T, vector<int> L, vector<int> R){
	int N = L.size();
	memset(dp, -1, sizeof(dp));
	T%=2;
	
	int ans = dfs(0, 0, T, L, R);
	return ans==1;
}

Compilation message

bulb.cpp: In function 'int FindWinner(int, std::vector<int>, std::vector<int>)':
bulb.cpp:76:6: warning: unused variable 'N' [-Wunused-variable]
  int N = L.size();
      ^
bulb.cpp: In function 'int dfs(int, int, int, std::vector<int>&, std::vector<int>&)':
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
  int &ret = dp[MAXN][f][t%2];
             ~~~~~~~^
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
bulb.cpp:16:20: warning: array subscript is above array bounds [-Warray-bounds]
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4984 KB Output is correct
2 Incorrect 6 ms 4956 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 4984 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 4984 KB Output isn't correct
2 Halted 0 ms 0 KB -