admin管理员组文章数量:1648545
Description
Petya is the most responsible worker in the Research Institute. So he was asked to make a very important experiment: to melt the chocolate bar with a new laser device. The device consists of a rectangular field of n × m cells and a robotic arm. Each cell of the field is a 1 × 1 square. The robotic arm has two lasers pointed at the field perpendicularly to its surface. At any one time lasers are pointed at the centres of some two cells. Since the lasers are on the robotic hand, their movements are synchronized — if you move one of the lasers by a vector, another one moves by the same vector.
The following facts about the experiment are known:
- initially the whole field is covered with a chocolate bar of the size n × m, both lasers are located above the field and are active;
- the chocolate melts within one cell of the field at which the laser is pointed;
- all moves of the robotic arm should be parallel to the sides of the field, after each move the lasers should be pointed at the centres of some two cells;
- at any one time both lasers should be pointed at the field. Petya doesn't want to become a second Gordon Freeman.
You are given n, m and the cells (x1, y1) and (x2, y2), where the lasers are initially pointed at (xi is a column number, yi is a row number). Rows are numbered from 1 to m from top to bottom and columns are numbered from 1 to n from left to right. You are to find the amount of cells of the field on which the chocolate can't be melted in the given conditions.
Input
The first line contains one integer number t(1 ≤ t ≤ 10000) — the number of test sets. Each of the following t lines describes one test set. Each line contains integer numbers n, m, x1, y1, x2, y2, separated by a space (2 ≤ n, m ≤ 109, 1 ≤ x1, x2 ≤ n, 1 ≤ y1, y2 ≤ m). Cells (x1, y1) and (x2, y2) are distinct.
Output
Each of the t lines of the output should contain the answer to the corresponding input test set.
Sample Input
Input2 4 4 1 1 3 3 4 3 1 1 2 2Output
82
求两个矩形的相交面积即可
#include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> #include<vector> #include<string> #include<queue> #include<map> #include<algorithm> using namespace std; typedef long long LL; int T; LL n,m,X1,Y1,x2,y2,a,b,ans; int main() { scanf("%d",&T); while(T--) { scanf("%lld%lld%lld%lld%lld%lld",&n,&m,&X1,&Y1,&x2,&y2); a=abs(x2-X1); b=abs(y2-Y1); ans=n*m; ans-=(n-a)*(m-b)*2; if (n>=a+a+1&&m>=b+b+1) ans+=(n-a-a)*(m-b-b); printf("%lld\n",ans); } return 0; }
本文标签: codeforceslaser
版权声明:本文标题:CodeForces 15BLaser 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1729494583a1202784.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论