(I2
I145
I4
(dp0
Vsquares.%l
p1
(Vmain.c
p2
S'#include <stdio.h>\r\n#define MAXN 10\r\n#define MAXC 192\r\ntypedef struct{\r\n  int x, y;\r\n}point;\r\n\r\npoint o[MAXN], a[MAXN], b[MAXN], c[MAXN], d[MAXN];\r\n\r\ninline void findpts(int i){\r\n  int dx = a[i].x - o[i].x, dy = a[i].y - o[i].y;\r\n  b[i].x = o[i].x - dy;  b[i].y = o[i].y + dx;\r\n  c[i].x = o[i].x - dx;  c[i].y = o[i].y - dy;\r\n  d[i].x = o[i].x + dy;  d[i].y = o[i].y - dx;\r\n}\r\n\r\ninline int aria(point a, point b, point c){\r\n  return a.x * b.y + b.x * c.y + c.x * a.y - a.x * c.y - b.x * a.y - c.x * b.y;\r\n}\r\n\r\nint main(){\r\n  //freopen("squares.in", "r", stdin);\r\n  //freopen("squares.out", "w", stdout);\r\n  int n, i;\r\n  scanf("%d", &n);\r\n  for(i = 0; i < n; i++){\r\n    scanf("%d%d%d%d", &o[i].x, &o[i].y, &a[i].x, &a[i].y);\r\n    findpts(i);\r\n  }\r\n  char g1, g2;\r\n  int j, k, nr1 = 0, nr2 = 0, x, y, z, t;\r\n  point p;\r\n  for(i = -MAXC; i <= MAXC; i++){\r\n    for(j = -MAXC; j <= MAXC; j++){\r\n      p.x = i;\r\n      p.y = j;\r\n      g1 = 0; g2 = 0;\r\n      for(k = 0; k < n; k++){\r\n        x = aria(p, a[k], b[k]);\r\n        y = aria(p, b[k], c[k]);\r\n        z = aria(p, c[k], d[k]);\r\n        t = aria(p, d[k], a[k]);\r\n        if(x >= 0 && y >= 0 && z >= 0 && t >= 0){\r\n          if(x == 0 || y == 0 || z == 0 || t == 0)\r\n            g2 = 1;\r\n          else\r\n            g1 = 1;\r\n        }\r\n      }\r\n      if(g1)\r\n        nr1++;\r\n      else  if(g2)\r\n        nr2++;\r\n    }\r\n  }\r\n  //nr2 += (nr2 & 1);\r\n  printf("%d", nr1 + nr2 / 2 - 1);\r\n  return 0;\r\n}\r\n'
p3
tp4
stp5
.