Submission

Status:

[PPPP][PPPP][PPPP][PPPP][PPPP][PPPP][PPPP][PPPP]

Subtask/Task Score:

{13/13}{13/13}{13/13}{13/13}{13/13}{13/13}{13/13}{13/13}

Score: 100

User: code

Problemset: ขนมปัง

Language: cpp

Time: 0.002 second

Submitted On: 2026-01-24 18:06:16

#include <bits/stdc++.h>
using namespace std;
int main (){
    int W,H,M,N,mmax=0,mmax2=-1,nmax=-1,nmax2=-1,rmbx,rmby;cin>>W>>H>>M>>N;
    int plotx[M+1]={0},ploty[N+1]={0};
    vector <int> disx(M+1,0);
    vector <int> disy(N+1,0);
    for (int i=1;i<=M;i++){
        cin>>plotx[i];
    }
    for (int i=1;i<=N;i++){
        cin>>ploty[i];
    }
    for (int i=1;i<M+1;i++){
        disx[i]=plotx[i]-plotx[i-1];
        //cout<<disx[i]<<" ";
    }
    disx.push_back(W-plotx[M]);
    for (int i=1;i<N+1;i++){
        disy[i]=ploty[i]-ploty[i-1];
        //cout<<" i="<<i<<"i dis[i]="<<disy[i]<<" "<<endl;
    }
    disy.push_back(H-ploty[N]);
    for (int i=0;i<disx.size();i++){
        if (disx[i]>mmax){
            mmax=disx[i];
            rmbx=i;
        }
    }
    //cout<<"mmax= "<<mmax;
    disx.erase(disx.begin()+rmbx);
    for (int i=0;i<disx.size();i++){
        if(disx[i]>mmax2){
            mmax2=disx[i];
        }

    }



    for (int i=0;i<disy.size();i++){
        if (disy[i]>nmax){
            nmax=disy[i];
            rmby=i;
        }
    }
    //cout<<nmax;
    disy.erase(disy.begin()+rmby);
    for (int i=0;i<disy.size();i++){
        if(disy[i]>nmax2){
            nmax2=disy[i];
        }
        //cout<<nmax2<<" ";
    }
    cout<<mmax*nmax<<" ";
    if (mmax2*nmax>nmax2*mmax){
        cout<<mmax2*nmax;
    }else{
        cout<<nmax2*mmax;
    }
    return 0;
}