Submission

Status:
[PPPP][PPPP][PPPP][PPPP][PPPP][PPPP][PPPP][PPPP]

Score: 100

User: Jokul

Problemset: ขนมปัง

Language: c

Time: 0.002 second

Submitted On: 2025-04-02 18:57:01

#include <stdio.h>

int main() {
    int w, h, m, n,result1=0,result2=0;
    scanf("%d", &w);
    scanf("%d", &h);
    scanf("%d", &m);
    scanf("%d", &n);

    int a[m + 2], b[n + 2],check1[m+2],check2[n+2];
    check1[0] = 0;
    check2[0] = 0;
    a[0]=0;
    b[0] = 0;
    a[m+1] = w;
    b[n+1] = h;

    for (int i = 1; i <= m; i++) {
        scanf("%d",&a[i]);
    }
    for (int i = 1; i <= n; i++) {
        scanf("%d",&b[i]);
    }

    // Finding max1 and max2 for array a
    int max[4]={0};
    for (int i = 0; i<m + 1; i++) {
        int j = i+1;
            int diff =a[j]-a[i];
            if (diff>=max[0]) {
                max[1]=max[0];
                max[0]=diff;
            } else if (diff>max[1]&&diff<max[0]) {
                max[1]=diff;
            }
        }

    for (int i = 0; i < n + 1; i++) {
        int j = i+1;
            int diff = b[j] - b[i];
            if (diff >=max[2]) {
                max[3] = max[2];
                max[2] = diff;
            } else if (diff > max[3] && diff < max[2]) {
                max[3] = diff;
            }
        }
    for(int i=2;i<4;i++)
        {
            for(int j=0;j<2;j++)
            if(max[i]*max[j]>=result1)
            {
                result2=result1;
                result1=max[i]*max[j];
            }
            else if(max[i]*max[j]>result2&&max[i]*max[j]<result1)
                result2=max[i]*max[j];
        }
    printf("%d %d\n", result1, result2);
    return 0;
}