Submission #854894

#TimeUsernameProblemLanguageResultExecution timeMemory
854894anhphantFancy Fence (CEOI20_fancyfence)C++14
0 / 100
1070 ms8280 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll N, H[500007], W[500007];

void initialize() {
    ios_base :: sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    cin >> N;
    for(int i = 1; i <= N; ++i) cin >> H[i];
    for(int i = 1; i <= N; ++i) cin >> W[i];
    cerr << ".";
}

namespace subtask1 {
    ll A[57][57];

    void solve() {
        for(int i = 1; i <= N; ++i) {
            for(int j = 1; j <= H[i]; ++j) {
                A[i][j] = 1;
            }
        }

        for(int i = 1; i <= N; ++i) {
            for(int j = 1; j <= N; ++j) {
                A[i][j] = A[i][j - 1] + A[i - 1][j] + A[i][j] - A[i - 1][j - 1];
            }
        }

        ll ans = 0;

        for(int i = 1; i <= N; ++i) {
            for(int j = 1; j <= N; ++j) {
                for(int k = i; k <= N; ++k) {
                    for(int l = j; l <= N; ++l) {
                        ans += (A[k][l] - A[i - 1][l] - A[k][j - 1] + A[i - 1][j - 1])
                                == ((k - i + 1) * (l - j + 1));
                    }
                }
            }
        }

        cout << ans;
    }

    void process() {
        solve();
    }
}

int main() {
    initialize();
    subtask1 :: process();
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...