Cod sursa(job #192307)
#include <fstream.h>
#include <iostream.h>
#include <stdio.h>
int xm, ym, n, *vx, *vy;
int contine (int x1, int y1, int x2, int y2)
{
for (int i = 0; i < n; i++)
if ((x1 < vx[i]) && (x2 > vx[i])) if ((y1 < vy[i]) && (y2 > vy[i])) return 1;
return 0;
}
int ariamax ()
{
int amax = 0;
for (int i = 0; i<n + 4; i++)
for (int j = 0; j < n + 4; j++)
{
if (i != j)
{
int a = (abs (vx[i] - vx[j]) * abs (vy[i] - vy[j]) );
if (a > amax) if (!contine (vx[i], vy[i], vx[j], vy[j])) amax = a;
}
}
return amax;
}
int main ()
{
FILE *f = fopen ("dr.in", "r");
FILE *g =fopen ("dr.out", "w");
int t;
fscanf (f, "%d", t);
for (int i = 0; i < t; i++)
{
fscanf (f, "%d%d%d", n, xm, ym);
for (int j = 0; j < n; j++)
fscanf (f, "%d%d", vx[j], vy[j]);
vx[n] = vy[n] = 0;
vx[n+1] = xm;
vy[n+1] = ym;
vx[n+2] = 0;
vy[n+2] = ym;
vx[n+3] = xm;
vy[n+3] = 0;
fprintf (g, "%d\n", ariamax());
}
fclose (f);
fclose (g);
}