hiho week 310 register

Ended

Participants:33

Verdict:Accepted
Score:100 / 100
Submitted:2020-06-07 19:09:33

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <cstdio>
int n,N,kk,q,x,y,u,v,ans;
int arr[160000];
int f[100010];
int p[100010];
void init(int k)
{
    int st = 400*k;
    int ed = 400*(k+1)<=n?400*(k+1):n+1;
    for(int i=ed-1;i>=st;i--)
    {
        if(arr[i]+i>=ed)
        {
            f[i] = 1;
            p[i] = arr[i]+i;
        }
        else{
            f[i] = f[arr[i]+i]+1;
            p[i] = p[arr[i]+i];
        }
    }
}
int main(int argc, char** argv) {
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&arr[i]);
    }
    kk = n/400+1;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX