제출 #1234682

#제출 시각아이디문제언어결과실행 시간메모리
1234682gry3125Fancy Fence (CEOI20_fancyfence)C++20
12 / 100
16 ms584 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long int int g[105][105] = { }, a[105][105] = { }; int main() { int n; cin >> n; vector<ll> h(n+5), w(n+5); for (int i = 1; i <= n; i++) cin >> h[i]; for (int i = 1; i <= n; i++) cin >> w[i]; ll cur = 0; for (int id = 1; id <= n; id++) { for (int i = cur+1; i <= cur + w[id]; i++) { for (int j = 1; j <= h[id]; j++) { g[i][j] = 1; } } cur += w[id]; } a[0][0] = 0; for (int i = 1; i < 105; i++) { a[0][i] = a[0][i-1] + g[0][i]; a[i][0] = a[i-1][0] + g[i][0]; } for (int i = 1; i < 105; i++) { for (int j = 1; j < 105; j++) { a[i][j] = a[i-1][j] + a[i][j-1] - a[i-1][j-1]; a[i][j] += g[i][j]; } } ll cnt = 0; for (int rh = 1; rh <= 50; rh++) { for (int rw = 1; rw <= 50; rw++) { for (int x = 0; x + rh < 105; x++) { for (int y = 0; y + rw < 105; y++) { ll sum = a[x+rh][y+rw]; sum -= a[x][y+rw]; sum -= a[x+rh][y]; sum += a[x][y]; if (sum == rh * rw) { cnt++; } } } } } cout << cnt; return 0; }
#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...