Cod sursa(job #192284)

Utilizator cefacialtfelSimionescu Tudor cefacialtfel Data 31 mai 2008 10:40:55
Problema Dreptunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <fstream.h>
#include <iostream.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 ()
{
    ifstream f ("dr.in");
    ofstream g ("dr.out");
    int t;
    f>>t;
    for (int i = 0; i < t; i++)
        {
             f>>n>>xm>>ym;
             for (int j = 0; j < n; j++)
                 f>>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;
             g<<ariamax ()<<endl;
             }
    f.close ();
    g.close ();
}