답안 #525913

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
525913 2022-02-13T07:38:49 Z Nihal_9936 비밀 (JOI14_secret) C++14
0 / 100
20000 ms 8340 KB
#include <bits/stdc++.h>
using namespace std;
#include "secret.h"

int dp[1001][1001];
int n;

void solve(int f, int l, int A[]){
	int mid = (f + l) / 2;
	dp[mid][mid] = A[mid];
	dp[mid + 1][mid + 1] = A[mid + 1];

	for(int i = mid - 1; i >= f; i--){
		dp[mid][i] = Secret(A[i], dp[mid][i + 1]);
	}

	for(int i = mid + 2; i <= l; i++){
		dp[mid + 1][i] = Secret(A[i], dp[mid + 1][i]);
	}

	if(f < mid) solve(f, mid, A);
	if(mid+1 < l) solve(mid + 1, l, A); 
}


void Init(int N, int A[]) {
	// for(int i = 0; i < 1001; i++){
	// 	for(int j = 0; j < 1001; j++){
	// 		dp[i][j] = -1;
	// 	}
	// }
	n = N;
	solve(0, n - 1, A);
}

int Query(int l, int r){
	int f = 0, ls = n - 1;
	while(true){
		int mid = (f + ls) / 2;
		if(l <= mid and mid < r){
			return Secret(dp[mid][l], dp[mid + 1][r]);
		}
		if(r <= mid){
			ls = mid;
		}else{
			f = mid + 1;
		}
	}
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 132 ms 4324 KB Wrong Answer: Query(222, 254) - expected : 34031541, actual : 559293107.
2 Incorrect 117 ms 4372 KB Wrong Answer: Query(60, 375) - expected : 669221184, actual : 38449312.
3 Incorrect 119 ms 4312 KB Wrong Answer: Query(211, 401) - expected : 674373968, actual : 696690974.
4 Incorrect 448 ms 8128 KB Wrong Answer: Query(90, 497) - expected : 397934825, actual : 595821184.
5 Incorrect 439 ms 8324 KB Wrong Answer: Query(587, 915) - expected : 752404486, actual : 874010704.
6 Execution timed out 20099 ms 8136 KB Time limit exceeded
7 Incorrect 433 ms 8140 KB Wrong Answer: Query(84, 976) - expected : 742463504, actual : 704129056.
8 Incorrect 446 ms 8340 KB Wrong Answer: Query(58, 987) - expected : 20022464, actual : 427077896.
9 Incorrect 426 ms 8208 KB Wrong Answer: Query(33, 967) - expected : 676869696, actual : 281940969.
10 Incorrect 426 ms 8300 KB Wrong Answer: Query(116, 961) - expected : 68487362, actual : 68832328.