10667

#include <iostream>

using namespace std;

int arr[105][105];
int s;

int Matsum(int a,int b)
{
    int p;
    int Line[105];
    int max_end_here,max_so_far;
    for(int i=1;i<=s;i++)
    {
        p=0;
        for(int j=a;j<=b;j++)
        {
           p+=arr[j][i];
        }
        Line[i]=p;
    }

    max_end_here=0;
    max_so_far=0;
    for(int i=1;i<=s;i++)
    {
       max_end_here+=Line[i];

       if(max_end_here<0)
         max_end_here=0;

       if(max_end_here>max_so_far)
         max_so_far=max_end_here;
    }

    return max_so_far;
}

int main()
{
    int t,mx,m;
    int b,r1,r2,c1,c2;

    cin>>t;

    while(t--)
    {
       cin>>s;
       cin>>b;

       mx =0;
       for(int i=0;i<=101;i++)
        for(int j=0;j<=101;j++)
           arr[i][j]=1;
       while(b--)
       {
         cin>>r1>>c1>>r2>>c2;

         for(int i=r1;i<=r2;i++)
         {
             for(int j=c1;j<=c2;j++)
              arr[i][j]=-10000000;
         }
       }

       for(int i=1;i<=s;i++)
          for(int j=1;j<=s;j++)
          {
             m = Matsum(i,j);
             if(mx<m)
             mx=m;
          }
       cout<<mx<<"\n";
    }

    return 0;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *