나선 격자의 직사각형 합
시간 제한1.5초메모리 제한256 MB
중심에 1을 두고 반시계 방향 나선으로 채운 (2n+1)x(2n+1) 격자에서, 축에 나란한 직사각형 안 수의 합을 1e9+7로 나눈 나머지를 q개 질의에 답한다.
문제
크기가 인 격자를 다음과 같이 채운다. 가운데 칸에 을 적고, 그 오른쪽 칸에 를 적은 다음, 반시계 방향으로 나선을 그리며 이어지는 수를 차례로 적는다.
칸의 위치는 정수 좌표 로 나타낸다. 가운데 칸이 이고, 는 오른쪽으로 갈수록 커지며 는 위로 갈수록 커진다. 그래서 격자의 모든 칸은 과 을 만족한다. 인 격자는 이렇게 채워진다.
직사각형 영역 개가 주어진다. 각 영역에 들어 있는 수의 합을 로 나눈 나머지를 구하라.
입력
첫째 줄에 격자의 크기 과 질의의 개수 가 주어진다.
이어지는 개 줄에 각각 네 정수 , , , 가 주어진다. 이는 두 꼭짓점 과 가 정하는 직사각형 영역, 즉 와 를 만족하는 칸 전체를 뜻한다.
출력
질의마다 한 줄에 그 영역에 들어 있는 수의 합을 로 나눈 나머지를 출력한다.