題目描述
一個無限大的二維矩陣d,滿足di,j=i+j-1笤闯。再給定x1,y1,x2,y2雌团,你需要求出矩陣d在以x1,y1為左上角、x2,y2為右下角的矩形內(nèi)的元素和聘惦,即需要求出
的值。為了避免大規(guī)模的輸出儒恋,你只需要輸出答案對一個給定的大整數(shù)m取模后的結(jié)果善绎。
輸入
一行五個正整數(shù)x1,y1,x2,y2,m
輸出
輸出一個整數(shù),為所求的答案對m取模后的結(jié)果诫尽。
樣例輸入
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);
}
}