Submission #396523

#TimeUsernameProblemLanguageResultExecution timeMemory
396523blueRectangles (IOI19_rect)C++17
Compilation error
0 ms0 KiB
#include "rect.h" using namespace std; /* For each (i, j) T[i][j] = furthest row I such that T[I][j], T[I+1][j], ... T[i-1][j] all have height less than (i, j) Similarly, D[i][j], R[i][j], L[i][j] A rectangle (r1, r2, c1, c2) is good if(minD[r1-1][c1..c2] > r2) and so on */ vector< vector<int> > A; int cc = 0; vector<int> t, l, d, r; vector<int> s; int n, m; void dfs(int i, int j) { if(A[i][j]) continue; A[i][j] = 1; t[cc-1] = min(t[cc-1], i); d[cc-1] = max(d[cc-1], i); l[cc-1] = min(l[cc-1], j); r[cc-1] = max(r[cc-1], j); s[cc-1]++; if(i > 0) dfs(i-1, j); if(i < n-1) dfs(i+1, j); if(j > 0) dfs(i, j-1); if(j < m-1) dfs(i, j+1); } long long count_rectangles(vector< vector<int> > a) { A = a; n = A.size(); m = A[0].size(); for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) { if(A[i][j]) continue; cc++; s.push_back(0); t.push_back(1e9); l.push_back(1e9); d.push_back(-1); r.push_back(-1); dfs(i, j); } long long res = 0; for(int i = 0; i < cc; i++) { if(t[i] == 0 || l[i] == 0 || d[i] == n-1 || r[i] == m-1) continue; if(s[i] == (d[i]-t[i]+1) * (r[i]-l[i]+1)) res++; } return res; }

Compilation message (stderr)

rect.cpp: In function 'void dfs(int, int)':
rect.cpp:24:17: error: continue statement not within a loop
   24 |     if(A[i][j]) continue;
      |                 ^~~~~~~~