Submission #2152741


Source Code Expand

import java.util.Arrays;
import java.util.Scanner;

class BIT{
    int N;
    long[] data;
    long inf = (long)1e9+7;
    
    public BIT(int n){
        N = n;
        data = new long[N+1];
        Arrays.fill(data,0);
    }

    public void add(int pos,long dat){
        for(int x = pos;x<=N; x += x&-x)data[x] = (data[x]+dat)%inf;
    }

    public long getSum(int pos){
        if(pos==0)return 0;
        long res = 0;
        for(int x = pos; x>0;x-=x&-x)res=(res+data[x])%inf;
        return res;
    }

}



class Main{

    static long A,B;
    static int N;
    static long[] S;
    static int findIndex(long s){
        int left=0;
        int right=N+1;
        while(right-left>1){
            int center = (left+right)/2;
            if(s-S[center] >=B)left=center;
            else right=center;
        }
        return left;
    }

    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        N = scan.nextInt();
        A = scan.nextLong();
        B = scan.nextLong();
        S = new long[N+1];
        S[0]=-B;
        for(int i=0;i<N;++i)S[i+1] = scan.nextLong();
        if(A>B){
            long a = A;
            A=B;
            B=a;
        }
        for(int i=1;i+2<N+1;++i)if(S[i+2]-S[i] < A){
                System.out.println(0);
                return;
        }
        long mod = (long)1e9+7;
        //1-index
        BIT bit = new BIT(N+1);
        bit.add(1, 1);
        bit.add(2,1);
        int leftindex = 0;
        for(int i=2;i<=N;++i){
            long delta = S[i]-S[i-1];
            if(delta < A){
                bit.add(i+1, (bit.getSum(findIndex(S[i])+1) - bit.getSum(leftindex)+mod)%mod);
                leftindex = i-1;
            }
            else if(delta < B){
                bit.add(i+1, (bit.getSum(findIndex(S[i])+1) - bit.getSum(leftindex)+mod)%mod);
            }
            else bit.add(i+1, (bit.getSum(i+1) - bit.getSum(leftindex) + mod)%mod);
        }
        System.out.println(((bit.getSum(N+1) - bit.getSum(leftindex)+mod)%mod));
    }
}

Submission Info

Submission Time
Task C - Division into Two
User inmir
Language Java8 (OpenJDK 1.8.0)
Score 0
Code Size 2133 Byte
Status WA
Exec Time 577 ms
Memory 63340 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 1100
Status
AC × 4
AC × 57
WA × 11
Set Name Test Cases
Sample s1.txt, s2.txt, s3.txt, s4.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt, 58.txt, 59.txt, 60.txt, 61.txt, 62.txt, 63.txt, 64.txt, s1.txt, s2.txt, s3.txt, s4.txt
Case Name Status Exec Time Memory
01.txt AC 553 ms 48144 KB
02.txt AC 554 ms 50520 KB
03.txt AC 492 ms 49600 KB
04.txt AC 473 ms 49432 KB
05.txt AC 521 ms 48852 KB
06.txt AC 504 ms 46884 KB
07.txt AC 533 ms 49512 KB
08.txt AC 490 ms 51392 KB
09.txt AC 526 ms 47940 KB
10.txt AC 551 ms 51092 KB
11.txt AC 537 ms 50488 KB
12.txt AC 506 ms 47364 KB
13.txt AC 570 ms 56492 KB
14.txt AC 542 ms 63340 KB
15.txt AC 568 ms 49388 KB
16.txt AC 478 ms 50900 KB
17.txt AC 510 ms 47860 KB
18.txt AC 514 ms 48828 KB
19.txt WA 541 ms 47080 KB
20.txt AC 577 ms 48816 KB
21.txt AC 527 ms 46236 KB
22.txt WA 529 ms 48792 KB
23.txt WA 488 ms 50072 KB
24.txt WA 527 ms 50192 KB
25.txt AC 525 ms 47560 KB
26.txt AC 543 ms 48636 KB
27.txt AC 507 ms 50108 KB
28.txt AC 544 ms 48688 KB
29.txt WA 562 ms 48432 KB
30.txt WA 547 ms 46960 KB
31.txt WA 537 ms 50732 KB
32.txt WA 560 ms 51156 KB
33.txt WA 535 ms 50544 KB
34.txt WA 544 ms 47352 KB
35.txt WA 525 ms 47992 KB
36.txt AC 450 ms 48368 KB
37.txt AC 475 ms 50620 KB
38.txt AC 424 ms 60920 KB
39.txt AC 487 ms 50132 KB
40.txt AC 470 ms 46052 KB
41.txt AC 523 ms 49368 KB
42.txt AC 410 ms 45876 KB
43.txt AC 463 ms 51848 KB
44.txt AC 520 ms 51940 KB
45.txt AC 494 ms 48504 KB
46.txt AC 536 ms 49192 KB
47.txt AC 497 ms 46584 KB
48.txt AC 472 ms 48680 KB
49.txt AC 93 ms 18772 KB
50.txt AC 91 ms 20688 KB
51.txt AC 95 ms 19924 KB
52.txt AC 93 ms 18896 KB
53.txt AC 93 ms 19668 KB
54.txt AC 92 ms 18516 KB
55.txt AC 93 ms 17748 KB
56.txt AC 92 ms 18900 KB
57.txt AC 92 ms 18644 KB
58.txt AC 92 ms 20692 KB
59.txt AC 92 ms 19412 KB
60.txt AC 93 ms 20564 KB
61.txt AC 91 ms 20564 KB
62.txt AC 92 ms 19924 KB
63.txt AC 92 ms 21716 KB
64.txt AC 92 ms 21716 KB
s1.txt AC 93 ms 20564 KB
s2.txt AC 91 ms 18516 KB
s3.txt AC 92 ms 19924 KB
s4.txt AC 91 ms 23764 KB