433B-Kuriyama Mirai's Stones-TLE on test case 46

Revision en1, by ontheqt, 2020-05-30 21:38:09

Can anyone explain why the following code gets TLE on test case 46? What should I do to get an AC. The problem is a straightforward application of prefix sums.

public static void main(String[] args) {
        FastScanner fs = new FastScanner();
        int n = fs.nextInt();
        long[] A = new long[n];
        long[] B = new long[n];

        for(int i=0; i<n; ++i){
            A[i] = fs.nextLong();
            B[i] = A[i];
        }
        Arrays.sort(B);
        for(int i=1; i<n; ++i){
            A[i] += A[i-1];
            B[i] += B[i-1];
        }
        int m = fs.nextInt();
        while(m-- != 0){
            long ans;
            int t = fs.nextInt();
            int l = fs.nextInt()-1;
            int r = fs.nextInt()-1;
            if(t == 1){
                ans = A[r]- (l-1 < 0 ? 0 : A[l-1]);
            }
            else{
                ans = B[r] - (l-1 < 0 ? 0 : B[l-1]);
            }
            System.out.println(ans);
        }
    }
Tags #dynamic programing, prefix sum, #implementaion, #algorithms

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en1 English ontheqt 2020-05-30 21:38:09 1124 Initial revision (published)