Submission #1203847

#TimeUsernameProblemLanguageResultExecution timeMemory
1203847AvianshRectangles (IOI19_rect)C++20
13 / 100
445 ms400348 KiB
#include "rect.h" #include <bits/stdc++.h> using namespace std; int mxi,mxj,mni,mnj; void dfs(int x, int y, vector<vector<int>>&a,vector<vector<bool>> &vis){ int n=a.size(); int m=a[0].size(); if(x<0||x>=n||y<0||y>=m) return; if(a[x][y]) return; if(vis[x][y]) return; mxi=max(mxi,x); mxj=max(mxj,y); mni=min(mni,x); mnj=min(mnj,y); vis[x][y]=1; dfs(x+1,y,a,vis); dfs(x-1,y,a,vis); dfs(x,y-1,a,vis); dfs(x,y+1,a,vis); } long long count_rectangles(vector<vector<int>> a) { int n=a.size(); int m=a[0].size(); if(n<3||m<3) return 0; long long ans = 0; vector<vector<bool>>vis(n,vector<bool>(m,0)); for(int i = 0;i<n;i++){ for(int j = 0;j<m;j++){ if(a[i][j]||vis[i][j]){ continue; } mxi=i; mni=i; mxj=j; mnj=j; dfs(i,j,a,vis); if(mni==0||mxi==n-1||mnj==0||mxj==m-1){ continue; } bool wor = 1; for(int i = mni;i<=mxi;i++){ for(int j = mnj;j<=mxj;j++){ if(a[i][j]){ wor=0; break; } } if(wor) continue; break; } ans+=wor; } } 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...