#include <bits/stdc++.h>
using namespace std;
#define lint long long int
int mod=1e9+7;
int main(){
    int n;
    cin>>n;
    vector<vector<int>> g(52,vector<int>(52,0));
    vector<int> h(n+1);
    vector<int> w(n+1);
    for(int i=1;i<=n;i++) cin>>h[i];
    for(int i=1;i<=n;i++) cin>>w[i];
    int re=0;
    int maxh=0;
    for(int i=1;i<=n;i++){
        maxh=max(maxh,h[i]);
        for(int j=1;j<=w[i];j++){
            re++;
            for(int k=1;k<=h[i];k++){
                g[re][k]=1;
            }
        }
    }
    vector<vector<int>> a(52,vector<int>(52,0));
    for(int i=1;i<=re;i++){
        for(int j=1;j<=maxh;j++){
            a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+g[i][j];
        }
    }
    // for(int i=1;i<=re;i++){
    //     for(int j=1;j<=maxh;j++){
    //         cout<<a[i][j]<<" ";
    //     }
    //     cout<<endl;
    // }
    int ans=0;
    for(int x1=1;x1<=re;x1++){
        for(int y1=1;y1<=maxh;y1++){
            for(int xx=0;xx+x1<=re;xx++){
                for(int yy=0;yy+y1<=maxh;yy++){
                    if((a[x1-1][y1-1]+a[x1+xx][y1+yy]-a[x1-1][y1+yy]-a[x1+xx][y1-1])==((xx+1)*(yy+1))) ans++;
                }
            }
        }
    }
    cout<<ans;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |