求和VII

作者: Tumaine | 来源:发表于2019-01-16 22:57 被阅读0次

    icpc

    题目描述

    一个无限大的二维矩阵d,满足di,j=i+j-1。再给定x1,y1,x2,y2,你需要求出矩阵d在以x1,y1为左上角、x2,y2为右下角的矩形内的元素和,即需要求出


    的值。为了避免大规模的输出,你只需要输出答案对一个给定的大整数m取模后的结果。

    输入

    一行五个正整数x1,y1,x2,y2,m

    输出

    输出一个整数,为所求的答案对m取模后的结果。

    样例输入

    2 1 5 3 10007

    样例输出

    54

    代码

    import java.util.*;
    import java.math.*;
    public class Main {
        public static void main(String []args){
            Scanner cin=new Scanner(System.in);
            BigInteger x1,y1,x2,y2,mod,n,m;
            x1=cin.nextBigInteger();
            y1=cin.nextBigInteger();
            x2=cin.nextBigInteger();
            y2=cin.nextBigInteger();
            mod=cin.nextBigInteger();
            BigInteger p1,p2;
            p1=BigInteger.valueOf(1);
            p2=BigInteger.valueOf(2);
             
            n=x2.subtract(x1).add(p1);
            m=y2.subtract(y1).add(p1);
            BigInteger a1=x1.add(y1).subtract(p1);
    //      a1=a1.subtract(p1);
             
            BigInteger a2=m.multiply(a1);
            BigInteger a3=m.multiply(m.subtract(p1)).divide(p2);
            BigInteger a=a2.add(a3);
    //      System.out.println(n+" "+m+" "+p1+" "+a1+" "+a2+" "+a3+" "+a);
            a=a.mod(mod);
            BigInteger ans1=n.multiply(a);
            BigInteger ans2=m.multiply(n).multiply(n.subtract(p1)).divide(p2);
            BigInteger ans=ans1.add(ans2);
            ans=ans.mod(mod);
    //      String an=ans.toString();
            System.out.println(ans);
              
             
        }
    }
    

    相关文章

      网友评论

          本文标题:求和VII

          本文链接:https://www.haomeiwen.com/subject/jxovdqtx.html