제출 #332376

#제출 시각아이디문제언어결과실행 시간메모리
332376nicholaskRectangles (IOI19_rect)C++14
37 / 100
5060 ms74212 KiB
//#include "rect.h" #include <bits/stdc++.h> using namespace std; bool satisfysub6(vector <vector <int> > a,int n,int m){ for (int i=0; i<n; i++){ for (int j=0; j<m; j++){ if (a[i][j]!=0&&a[i][j]!=1) return 0; } } return 1; } long long count_rectangles(vector <vector <int> > a){ int n=a.size(),m=a[0].size(); long long ans=0; if (satisfysub6(a,n,m)){ for (int r1=1; r1<=n-2; r1++){ for (int c1=1; c1<=m-2; c1++){ if (a[r1][c1]) continue; int r2=r1,c2=c1; while (r2<n-2&&!a[r2+1][c1]) r2++; while (c2<m-2&&!a[r1][c2+1]) c2++; for (int i=r1; i<=r2; i++){ for (int j=c1; j<=c2; j++){ if (a[i][j]) goto die1; } } for (int i=c1; i<=c2; i++){ if (!a[r1-1][i]||!a[r2+1][i]) goto die1; } for (int i=r1; i<=r2; i++){ if (!a[i][c1-1]||!a[i][c2+1]) goto die1; } ans++; die1:; } } return ans; }else { for (int r1=1; r1<=n-2; r1++){ for (int r2=r1; r2<=n-2; r2++){ for (int c1=1; c1<=m-2; c1++){ for (int c2=c1; c2<=m-2; c2++){ for (int i=r1; i<=r2; i++){ for (int j=c1; j<=c2; j++){ if (a[i][j]>=a[i][c1-1]||a[i][j]>=a[i][c2+1]||a[i][j]>=a[r1-1][j]||a[i][j]>=a[r2+1][j]) goto die; } } ans++; die:; } } } } } 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...