Solution in Java and C
Code
# Code
```c []
int areaOfMaxDiagonal(int** dimensions, int dimensionsSize, int* dimensionsColSize) {
    int area = dimensions[0][0] * dimensions[0][1];
    float max_diag = (dimensions[0][0] * dimensions[0][0]) + (dimensions[0][1] * dimensions[0][1]);

    for (int i = 1; i < dimensionsSize; i++) {
        float temp = (dimensions[i][0] * dimensions[i][0]) + (dimensions[i][1] * dimensions[i][1]);
        if (max_diag < temp) {
            max_diag = temp;
            area = dimensions[i][0] * dimensions[i][1];
        }
        else if(max_diag == temp && area < dimensions[i][0] * dimensions[i][1]){
            area = dimensions[i][0] * dimensions[i][1];
        }
    }

    return area;
}

```

---


```Java []
class Solution {
    public int areaOfMaxDiagonal(int[][] dimensions) {
        int len = dimensions.length;
        int area = dimensions[0][0] * dimensions[0][1];
        float max_diag = (dimensions[0][0] * dimensions[0][0]) + (dimensions[0][1] * dimensions[0][1]);

        for (int i = 1; i < len; i++) {
            float temp = (dimensions[i][0] * dimensions[i][0]) + (dimensions[i][1] * dimensions[i][1]);
            if (max_diag < temp) {
                max_diag = temp;
                area = dimensions[i][0] * dimensions[i][1];
            } 
            else if (max_diag == temp && area < dimensions[i][0] * dimensions[i][1]) {
                area = dimensions[i][0] * dimensions[i][1];
            }
        }

        return area;
    }
}
```
['Array', 'Math', 'C', 'Java']