Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- struct Punct{
- int x,y;
- };
- ifstream f("hambar.in");
- ofstream g("hambar.out");
- int Amax=0,n,m;
- Punct a[1001];
- int aria(int x1,int y1,int x2,int y2)
- {
- return (x2-x1+1)*(y2-y1+1);
- }
- void citire(int &n,int &m,Punct a[])
- {
- f>>n>>m;
- for(int i=1;i<=m;i++)
- {
- f>>a[i].x>>a[i].y;
- cout<<a[i].x<<" "<<a[i].y<<'\n';
- }
- }
- int cauta(int x1,int y1,int x2,int y2,int k)
- {
- while(k<=m){
- if((x1<=a[k].x && a[k].x<=x2)&&(y1<=a[k].y && a[k].y<=y2))
- {
- return k;
- }
- else
- {
- k++;
- }
- }
- return 0;
- }
- void divide_h(int x1,int y1,int x2,int y2,int k)
- {
- int valid=1,ar;
- ar=aria(x1,y1,x2,y2);
- k=cauta(x1,y1,x2,y2,k);
- if((k!=0)&&(Amax<ar))
- {
- divide_h(x1,y1,x2,a[k].y-1,k+1);
- divide_h(x1,y1,a[k].x-1,y2,k+1);
- divide_h(x1,a[k].y+1,x2,y2,k+1);
- divide_h(a[k].x+1,y1,x2,y2,k+1);
- }
- if(k==0){
- Amax=max(Amax,ar);
- }
- }
- int main()
- {
- citire(n,m,a);
- divide_h(1,1,n,n,1);
- g<<Amax;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement