# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
55321 |
2018-07-07T01:15:53 Z |
red1108 |
Secret (JOI14_secret) |
C++17 |
|
725 ms |
5452 KB |
#include "secret.h"
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
using namespace std;
int si=1,h=1;
int dp[20][2000];
int input[2000];
void fillup(int st,int l, int r)
{
int mid, i;
if(st>=9) return ;
mid=(r+l-1)/2;
for(i=mid;i>=l;i--)
{
if(i==mid) {dp[st][i]=input[i];continue;}
dp[st][i]=Secret(input[i],dp[st][i+1]);
}
mid=(r+l+1)/2;
for(i=mid;i<=r;i++)
{
if(i==mid) {dp[st][i]=input[i];continue;}
dp[st][i]=Secret(dp[st][i-1],input[i]);
}
fillup(st+1, l, (l+r)/2);
fillup(st+1, (l+r)/2+1, r);
}
void Init(int N, int A[])
{
int i,j;
while(si<N) {si*=2;h++;}
for(i=N;i>=1;i--)
{
input[i]=A[i-1];
}
for(i=1;i<=h+1;i++)
{
for(j=1;j<=N*2;j++)
{
dp[i][j]=-1;
}
}
fillup(1,1,si);
}
int query(int x,int st,int l, int r, int s, int e)
{
int mid;
mid=(l+r)/2;
if(l+r<s*2) return query(x*2+1,st+1,(l+r)/2+1, r, s, e);
else if(l+r>e*2) return query(x*2,st+1, l, (l+r)/2, s, e);
else
{
return Secret(dp[st][s],dp[st][e]);
}
}
int Query(int L, int R)
{
L++;
R++;
if(L+1==R) return Secret(input[L],input[R]);
else if(L==R) return input[L];
return query(1,1,1,si,L, R);
}
Compilation message
secret.cpp: In function 'int query(int, int, int, int, int, int)':
secret.cpp:47:9: warning: variable 'mid' set but not used [-Wunused-but-set-variable]
int mid;
^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
195 ms |
2552 KB |
Output is correct - number of calls to Secret by Init = 3586, maximum number of calls to Secret by Query = 1 |
2 |
Correct |
196 ms |
2720 KB |
Output is correct - number of calls to Secret by Init = 3586, maximum number of calls to Secret by Query = 1 |
3 |
Incorrect |
185 ms |
2820 KB |
Wrong Answer [1] |
4 |
Incorrect |
640 ms |
4764 KB |
Wrong Answer [1] |
5 |
Incorrect |
640 ms |
4888 KB |
Wrong Answer [1] |
6 |
Incorrect |
668 ms |
5164 KB |
Wrong Answer [1] |
7 |
Correct |
657 ms |
5188 KB |
Output is correct - number of calls to Secret by Init = 7682, maximum number of calls to Secret by Query = 1 |
8 |
Correct |
639 ms |
5188 KB |
Output is correct - number of calls to Secret by Init = 7682, maximum number of calls to Secret by Query = 1 |
9 |
Correct |
715 ms |
5412 KB |
Output is correct - number of calls to Secret by Init = 7682, maximum number of calls to Secret by Query = 1 |
10 |
Correct |
725 ms |
5452 KB |
Output is correct - number of calls to Secret by Init = 7682, maximum number of calls to Secret by Query = 1 |