제출 #1021471

#제출 시각아이디문제언어결과실행 시간메모리
1021471vjudge1Rectangles (IOI19_rect)C++17
13 / 100
368 ms67844 KiB
#include "rect.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using vll = vector <ll>; using vi = vector <int>; const ll MAXN = 2.5E3+16; bool vis[MAXN][MAXN]; ll count_rectangles (vector <vi> a) { ll n = a.size(), m = a[0].size(); ll ans = 0; for (ll i = 1; i < n-1; i++) { for (ll j = 1; j < m-1; j++) { if (vis[i][j] || a[i][j] == 1) continue; ll minI = i, maxI = i; ll minJ = j, maxJ = j; queue <ll> q; ll cou = 0; q.push(i); q.push(j); while (q.size()) { ll i = q.front(); q.pop(); ll j = q.front(); q.pop(); if (a[i][j] == 1) continue; if (vis[i][j]) continue; vis[i][j] = true; cou++; minI = min(minI, i); maxI = max(maxI, i); minJ = min(minJ, j); maxJ = max(maxJ, j); if (i-1 >= 0) { q.push(i-1); q.push(j); } if (j-1 >= 0) { q.push(i); q.push(j-1); } if (i+1 < n) { q.push(i+1); q.push(j); } if (j+1 < m) { q.push(i); q.push(j+1); } } if (0 < minI && maxI < n-1 && 0 < minJ && maxJ < m-1) ans += (cou == (maxI-minI+1)*(maxJ-minJ+1)); } } return ans; }
#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...