csp20211202 序列查询新解 70-90分问题

csp20210302 序列查询新解
cnt函数返回long就会由返回int从90变为70 按理说int可以通过的样例换成long也应该能通过,求看看为什么少了20分。
还有为什么下面代码只能拿90分?
下面是java代码

package csp2021;

import java.util.Scanner;

public class csp1202_V3 {

    static int cnt(int x,int r){
        if(x<r)
            return 0;
        return (0+x/r-1)*(x/r)/2*r+(x-x/r*r+1)*(x/r);
    }
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int N=scanner.nextInt();
        int r=N/(n+1);
        int[] A=new int[(int)(10e5+10)];
        long count=0;
        A[n+1]=N;
        for(int i=1;i<n+1;i++){
            A[i]=scanner.nextInt();
        }
        for(int i=0;i<=n;i++){
            if(A[i]<i*r){
                count+=i*(Math.min(i*r,A[i+1])-A[i])-cnt((Math.min(i*r,A[i+1])-1),r)+cnt(A[i]-1,r);
            }
            if(A[i+1]>i*r){
                count+=cnt(A[i+1]-1,r)-cnt(Math.max(i*r,A[i])-1,r)-i*(A[i+1]-Math.max(A[i],i*r));
            }
        }
        System.out.println(count);
    }
}


https://www.bilibili.com/video/BV1Ea411m7oW/?spm_id_from=333.337.search-card.all.click&vd_source=2f8fc4b8dfa65527dbec9a7ed818c095
写法是照着这位up写的。代码抽象,可以看下视频。主要是求dalao解决不能满分和90变70的问题。////////////////////////////////////////////////////////////////////////////////////////

更新:90分变70分的问题已经聚焦到最后for里的count+=和count=count+上面了,前者可以得到90分,后者只能得到70。有dalao可以看看原因吗