Submission #147121

#TimeUsernameProblemLanguageResultExecution timeMemory
147121NucleistRectangles (IOI19_rect)C++14
0 / 100
2 ms504 KiB
#include <bits/stdc++.h> #include "rect.h" using namespace std; #define flash ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0) #define debug(x) cerr << " - " << #x << ": " << x << endl; #define debugs(x, y) cerr << " - " << #x << ": " << x << " " << #y << ": " << y << endl; #define all(x) (x).begin(),(x).end() #define sz(x) (ll)x.size() #define ll long long #define INF 1000000000 #define pb push_back struct greateri { template<class T> bool operator()(T const &a, T const &b) const { return a > b; } }; vector<vector<int>>floodfill; int topx,topy,botx,boty; int last; int n,m; int dir[4][2]={{0,1},{1,0},{-1,0},{0,-1}}; void dfs(int x,int y) { topx=max(topx,x),topy=max(topy,y),botx=min(botx,x),boty=min(boty,y); floodfill[x][y]=last; for (int i = 0; i < 4; ++i) { int nextx=x+dir[i][0],nexty=y+dir[i][1]; if(floodfill[nextx][nexty]==0) dfs(nextx,nexty); } } ll count_rectangles(vector<vector<int>>X) { //flash; n = sz(X); // 2 rows m = sz(X[0]); floodfill=X; last=1; ll ans=0; for (int i = 1; i < n-1; ++i) { for (int j = 1; j < m-1; ++j) { if(floodfill[i][j]==0) { last++; topy=boty=j,topx=botx=i; dfs(i,j); int topi = floodfill[topx][topy]; int yopi = floodfill[topx][boty]; int dopi = floodfill[botx][boty]; int kopo = floodfill[botx][topy]; if(topi==yopi && yopi==dopi && dopi==kopo &&(topx!=n-1 && topy!=m-1 && botx!=0 && boty!=0))ans++; } } } return ans; } //code the AC sol ! // BS/queue/map
#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...