Submission #1043561

#TimeUsernameProblemLanguageResultExecution timeMemory
1043561idasRectangles (IOI19_rect)C++17
25 / 100
5091 ms102312 KiB
#include "rect.h" #include "bits/stdc++.h" #define FOR(i, begin, end) for(int i=(begin); i<(end); i++) #define pb push_back #define s second #define f first using namespace std; typedef pair<int, int> pii; typedef vector<int> vi; const int MxN=2510; int n, m, a[MxN][MxN], mxx[MxN][MxN], mxy[MxN][MxN]; long long count_rectangles(std::vector<std::vector<int> > A) { n=A.size(); m=A[0].size(); FOR(i, 0, n) FOR(j, 0, m) a[i][j]=A[i][j]; int ans=0; FOR(i, 1, n-1) { FOR(j, 1, m-1) { int x=n-2, y=m-2; FOR(k, i, n-1) { // if(k>x) break; FOR(l, j, m-1) { if(l>y) break; if(k-1>=i) mxx[k][l]=max(mxx[k-1][l], a[k][l]); else mxx[k][l]=a[k][l]; if(l-1>=j) mxy[k][l]=max(mxy[k][l-1], a[k][l]); else mxy[k][l]=a[k][l]; if(a[k][l]>=a[k][j-1] || a[k][l]>=a[i-1][l]) { y=l-1; break; } bool ok=true; FOR(z, i, k+1) { ok&=mxy[z][l]<a[z][l+1]; ok&=mxy[z][l]<a[z][j-1]; } FOR(z, j, l+1) { ok&=mxx[k][z]<a[k+1][z]; ok&=mxx[k][z]<a[i-1][z]; } ans+=ok; // if(ok) { // cout << i << " " << j << " " << k << " " << l << endl; // cout << mxy[1][3] << " " << mxy[2][3] << " " << mxy[3][3] << " " << mxy[4][3] << endl; // cout << mxx[4][2] << " " << mxx[4][3] << endl; // } } } } } return ans; }

Compilation message (stderr)

rect.cpp: In function 'long long int count_rectangles(std::vector<std::vector<int> >)':
rect.cpp:22:8: warning: unused variable 'x' [-Wunused-variable]
   22 |    int x=n-2, y=m-2;
      |        ^
#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...